Cron ve CLI betikleri
Sözde-cron (pseudo-cron) zamanlayıcısı ve gelişmiş sunucular için isteğe bağlı komut satırı betikleri.
TubePress, bir sistem crontab'ı yapılandırmanızı gerektirmeden sıralamaları yeniden hesaplama, dönüştürme işlerini sorgulama, beslemeleri içe aktarma, site haritalarını yenileme ve daha fazlası gibi tekrarlayan görevlerini çalıştırır. Bu sayfa, sahte cron'u, onu ayakta tutan kalp atışını ve gelişmiş sunucular için isteğe bağlı komut satırı betiklerini açıklamaktadır.
Sahte cron
CronManager, WordPress tarzı bir zamanlayıcıdır. Görevler bir ad ve aralıkla kaydedilir; CronManager::run() ise her sayfa oluşturmanın sonunda bir kez çağrılır. Her görev yalnızca son çalışmasından bu yana yeterli zaman geçmişse çalışır.
// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
Promo::rebuildCache(); // runs at most every 10 minutes
});Herhangi bir sunucuda güvenli olacak şekilde tasarlanmıştır:
- Atomik kilitleme.
settingstablosunda koşullu birUPDATEher çalışmayı talep eder; böylece iki eş zamanlı istek aynı görevi asla iki kez çalıştıramaz. - Kalıcı zaman damgaları. Son çalışma zamanları
settingstablosunda (autoload = 0ile) depolanır; bu nedenle zamanlama yeniden başlatmalar ve çökmelerden sonra da geçerliliğini korur — bir sonraki sayfa yüklemesi kaldığı yerden devam eder. - Otomatik geri çekilme. Hata vermeye devam eden bir görev, düzelene kadar üstel olarak artan aralıklarla (en fazla bir saat) yeniden denenir ve başarı durumunda hata sayacı sıfırlanır.
Kalp atışı — crontab gerekmez
Sahte cron yalnızca sayfalar oluşturulurken tetiklenir; bu durum, yeni veya düşük trafikli bir site için sorun oluşturabilir. TubePress bunu kendi kendini yöneten bir kalp atışıyla çözer: zamanlayıcının sıfır ziyaretçiyle bile çalışmaya devam etmesi için ana sayfanızı yaklaşık her 50 saniyede bir yoklayan hafif bir CLI işlemi (bin/heartbeat.php).
- Durması halinde herhangi bir web isteği tarafından PID korumalı ve otomatik olarak yeniden başlatılır — onu başlatmak veya denetlemek zorunda değilsiniz.
heartbeat_enabled'ı0olarak ayarlayarak çalışma zamanında kapatabilirsiniz.
crontab -e yok, denetleyici yok, bakım gerektiren ekstra hizmet yok.Zamanlayıcıda ne çalışır
Çekirdek ve paketlenmiş eklentiler kendi görevlerini kaydeder — örneğin CTR skoru yeniden hesaplama, dönüştürme işi gönderimi ve yeniden deneme, besleme içe aktarmaları, katalog işleme, AI çeviri işleri ve site haritası yenilemeleri. Alt sistemleri etkinleştirdikçe görevlerini otomatik olarak eklerler; yapılandırılacak ek bir şey yoktur.
İsteğe bağlı CLI betikleri
Ağır veya tek seferlik işlemler için bin/ dizininde birkaç komut satırı betiği bulunur; bunlar yetenekli sunucularda manuel olarak veya gerçek bir crontab'dan çalıştırılabilir. Uzun süreli çalışanları (katalog indirmeleri ve toplu silmeler için) ve bakım yardımcılarını içerirler. Proje kök dizininden sistem PHP CLI'si ile çalıştırın:
php bin/heartbeat.php # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobsGerçek bir crontab kullanma (gelişmiş)
Zamanlayıcıyı işletim sisteminden yönetmeyi tercih ediyorsanız — örneğin sıkı ve öngörülebilir zamanlama istediğiniz yüksek trafikli bir sitede — kalp atışını devre dışı bırakabilir ve ana sayfanızı kısa aralıklarla isteyen (ya da kalp atışını bir kez çalıştıran) tek bir sistem cron girişi ekleyebilirsiniz. Çoğu operatörün buna ihtiyacı yoktur; yerleşik kalp atışı yeterlidir.
Sonraki adımlar
Hâlâ takıldınız mı?
Kontrol panelinizden bir destek talebi açın, ekibimiz size yardımcı olacaktır.