Paylaşımlı hostingde uzun süren cron görevleri nasıl yönetilir?

0 Yanıt 0 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
Bir cron görevi beklenenden uzun sürünce sonraki çalıştırma başlamış oluyor ve aynı işlem iki kez çalışabiliyor. Özellikle e-posta gönderimi, dosya aktarımı veya büyük bir veritabanı işlemi yapan betiklerde bu durum hem kaynak tüketimini artırıyor hem de beklenmedik sonuçlara yol açabiliyor.

Ben önce görevin gerçekten ne kadar sürdüğünü loga yazdırmayı ve hata çıktısını da kaydetmeyi öneriyorum. Böylece sorunun zamanlama sıklığından mı, yoksa betiğin belli bir adımda takılmasından mı kaynaklandığı anlaşılabiliyor. Her dakika çalışan bir görev gerekiyorsa, çalışırken ikinci kopyanın başlamasını engellemek de önemli.

Sunucuda flock kullanılabiliyorsa şöyle bir kilit denenebilir:

KOD
1flock -n /tmp/gorev.lock php /home/kullanici/public_html/gorev.php >> /home/kullanici/logs/gorev.log 2>&1


Ancak paylaşımlı hostinglerde komut yolu, izinler ve /tmp davranışı pakete göre değişebiliyor; önce sağlayıcının cron yönergelerini kontrol etmek iyi olur. Alternatif olarak PHP tarafında kilit dosyası oluşturulabilir, ama hata durumunda kilidin temizlenmesini de düşünmek gerekir.

Siz uzun süren cron görevlerinde hangi yöntemi kullanıyorsunuz? Hosting firmanızın sunduğu özel bir araç veya dikkat edilmesi gereken bir kısıtlama oldu mu?

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi