MySQL veritabanı girilen timestamp dayalı bir komut dosyasını çalıştırın

3 Cevap php

Ben kullanıcı tarafından girilen saatlerde bir sunucu komut dosyası çalıştırmak için bir şartı var. Bu zamanlama e-postalar için bir program içindir. Onlar posta göndermek istediğinizde bir kullanıcı belirli bir kez girebilirsiniz. Ben kimliği, e-posta metni ve posta gönderileceği süreyi saklayan bir tablo var. Bu süre dakika olarak tanımlanmıştır. O çalışan Cron Jobs her dakika anlamına gelir gibi bir cron işi aracılığıyla bunu yapmak istemiyorum. Daha makine etkili olduğunu bunu yapmak için bir yolu var mı - belki veritabanı tetikler ya da bir şey ile. Herhangi bir yardım takdir edilmektedir.

Teşekkürler

Vinayak

3 Cevap

Cron işi yapıyor herhangi bir posta göndermek için planlanan olmadığını kontrol etmek için hızlı bir sorgu ise, o zaman her dakika çalıştırmak için pahalı bir operasyon olacak değil. Bu (genellikle epeyce sorguları ve daha gerektirir) tipik bir sayfa yük daha da sunucu üzerinde daha az yük olmalı.

Bir cron tarafından işletilen bir komut dosyası kullan, ama mümkün olduğunca hafif olduğundan emin olun. Çoğu zaman - - sonuçları döndürür sıfır sen ne tarif itibaren, basit bir sorgu için aşağı almak gerekir. Bu oldukça hafiftir.

Ben cron aşina değilim ama kullanıcı bilgileri girdiğinde, bunu belirli bir zamanda çalışacak bir cron işi ayarlamak mümkün olabileceğini düşünüyorum. Bu şekilde, sürekli genel bir cron işi çalıştırmak zorunda kalmazsınız. O sadece, bütün belirli zamanlarda çalışacaktır.

Drewm söylediği gibi, bir cron kullanmak zorunda olacak. Tetikleyiciler kesinlikle basit bir cron işi daha da sunucu üzerinde çok daha büyük bir yük koyacağız. Ayrıca, mysql herhangi bunu için bir UDF yazmak gerekir bu yüzden e-postalar göndermek için mekanizması inşa yoktur. ASFAIK bu UDF C ile yazılmış olması gerekir Ve sıfırdan bir SMTP istemci oluşturmak bağlamak istediğiniz sürece tüm bu oldukça dağınık alabilirsiniz, UDF SMTP kütüphaneleri bağlamak zorunda olacak.

Bir cron işi ve bir kabuk komut dosyası veya bir php komut dosyası içeren e-postalar göndererek kod az 10 satır.