Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

Otomatik görevlerim artık çalışmıyor

Zamanlanmış bir görevin hata mesajını okuyacak kimsesi yoktur. Gece, tarayıcısız ve kullanıcısız çalışır ve başarısız olduğunda hiçbir şey bunu bildirmez. Sorun günler sonra, bayatlamış bir akış ya da yanlış bir stokla ortaya çıkar. Bu bölümdeki en sessiz ve en pahalı arızadır.

Sorunumu anlatayım Mesaj gönderin

Zamanlamanın birbirinden çok farklı iki yolu

Sıkça karıştırılan iki mekanizma vardır. Birincisi sunucu düzeyinde zamanlanmış görevdir: sistem, trafikten bağımsız olarak sabit saatte bir komut tetikler. Güvenilirdir ama oluşturmak ve denetlemek için barındırma erişimi gerektirir.

İkincisi bir ziyaretçinin sayfa yüklemesiyle tetiklemedir: CMS her sayfada bir görevin vakti gelmiş mi diye bakar ve gelmişse çalıştırır. Kurulumu basittir ama ziyaretçisi olmayan bir mağazanın hiçbir şey çalıştırmadığı ve uzun bir görevin onu tetikleyen sayfayla birlikte kesildiği anlamına gelir. «Artık çalışmayan görevlerin» önemli bir bölümü, gece trafiği düşük bir sitede bu ikinci türden görevlerdir.

Gerçekten çalışıp çalışmadığını denetlemek

  1. Son çalışmanın izini arayın

    Üretilen dosyanın tarihi, kaydın son satırı, veritabanındaki zaman damgası. İz yoksa görevin başarısız mı olduğu yoksa hiç tetiklenmediği mi bilinemez: bunlar iki ayrı sorundur.

  2. Komutu elle çalıştırın

    Elle çalışıp otomatik çalışmıyorsa sorun işlemde değil zamanlamadadır. Olası nedenleri ikiye bölen test budur.

  3. Çalışma bağlamını kontrol edin

    Sunucunun başlattığı bir görevin oturumu ve giriş yapmış kullanıcısı yoktur, bazen sitenin PHP sürümünden farklı bir sürüm kullanır. Kullanıcı varsayan bir işlem sessizce başarısız olur.

  4. Süreyi denetleyin

    Görev, bir sonrakine kadar geçen aradan uzun sürüyorsa iki çalışma çakışır. İşleme göre bu, yinelenen kayıtlar ya da veritabanı kilidi üretir.

  5. Erişim anahtarlarını kontrol edin

    Birçok görev, anahtarla korunan bir adresten tetiklenir. Yeniden kurulumda yenilenen bir anahtar, hiçbir mesaj vermeden mevcut tüm zamanlamaları geçersiz kılar.

Bir zamanlamayı habersiz bozan şeyler

  • Barındırma değişikliği: sunucu görevleri dosyalarla birlikte kopyalanmaz ve yeniden oluşturulmalıdır.
  • PHP sürüm değişikliği: zamanlanmış komut, artık aynı adla var olmayan bir çalıştırılabiliri çağırıyor olabilir.
  • Sitenin başka bir dizine taşınması: göreve yazılmış mutlak yol artık hiçbir yere götürmez.
  • Kendi görevlerini götüren ya da her denemede başarısız olan öksüz görevler bırakan kaldırılmış bir modül.
  • Bir dış servise ait süresi dolmuş parola ya da erişim anahtarı.

Doğru sayfadan devam edin

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

tache
frequence-actuelle
temps-passe (facultatif)
outils (facultatif)
plateforme (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Sıkça sorulan sorular

Görevin ne zamandan beri çalışmadığını nasıl bilirim?
Ürettiği dosyanın değiştirilme tarihi anında yanıt verir. Hiçbir şey yazmıyorsa veritabanındaki en güncel kayıt büyüklük fikrini verir.
Sunucu görevini, bir adresi çağıran dış bir servisle değiştirebilir miyim?
Evet, barındırma görev oluşturmaya izin vermediğinde yaygın bir çözümdür. Adresin bir anahtarla korunması gerekir, aksi hâlde işlemi herkes tetikleyebilir.
Aynı anda iki çalışma ciddi bir sorun mu?
İşleme bağlıdır. Bir içe aktarma ya da eşitlemede evet: veriler iki kez yazılır ya da çakışır. Çakışmayı önleyen bir kilit alışılmış çözümdür.
Görev çalışıyor ama hiçbir şey yapmıyor, neden?
Çoğu zaman işlemin başındaki bir koşul artık sağlanmadığı için: devre dışı bir modül, boşaltılmış bir ayar, ulaşılamayan bir veri kaynağı. O zaman işlemin kendi kaydı vazgeçilmez olur.
Küçük bir mağazada otomatik görev gerekir mi?
Ne yaptıklarına bağlıdır. Önbellek temizlemek ya da terk edilmiş sepetleri silmek her ölçekte yararlıdır; kataloğu bir işletme yazılımıyla eşitlemek ancak o yazılım varsa anlamlıdır.