Turbo Mod: Neden Otomatik Cron Güncellemeleri Başarısız Oluyor (Ve Nasıl Düzeltilir)
Sorun
Kullanıcılar WOOF’un Turbo Mod otomatik dosya yeniden oluşturma güvenilir bir şekilde çalışmıyor:
Belirtiler:
- Turbo modu “Günlük cron” programı ile etkinleştirildi
- WordPress cron işi
woof_turbo_do_recreate_fileoluşturulmuyor - Manuel dosya oluşturma mükemmel çalışıyor
- Otomatik güncellemeler oluşturur kısmi/boş dosyalar
- Dosya yeniden oluşturma hiçbir zaman tamamlanmıyor gibi görünüyor
Etki:
- Müşterilere görüntülenen güncel olmayan filtre sayıları
- Kötü kullanıcı deneyimi (mevcut olmayan ürünleri görmek)
- Günlük manuel müdahale gerekli
Neden Olur: İki Temel Neden
1. Dosya Temizleme Yarış Durumu
WOOF turbo dosyayı yeniden oluşturduğunda şu süreci izler:
// Step 1: Clear the file
file_put_contents($turbo_file, '');
// Step 2: Write new data (takes time)
foreach ($products as $product) {
// Heavy processing for each product...
file_put_contents($turbo_file, $data, FILE_APPEND);
}
Sorun:
Sitenizde çok sayıda ürün (1000+) varsa, Adım 2 60-120 saniye sürebilir. Eğer PHP’nin max_execution_time (genellikle 30-60 saniye) aşılırsa, betik yarı yazılmış olarak sonlanır ve dosya boş veya kısmi.
2. WordPress Cron Gerçek Cron Değildir
WordPress cron (wp-cron.php) kritik sınırlamalara sahiptir:
❌ Çalışması garanti değil – yalnızca birisi sitenizi ziyaret ettiğinde tetiklenir
❌ Engellenebilir – önbelleğe alma eklentileri yürütmeyi engelleyebilir
❌ Uzun süren görev yok – PHP yürütme sınırları nedeniyle devre dışı bırakıldı
❌ Güvenilmez zamanlama – gecikebilir veya hiç çalışmayabilir
Gerçek dünya senaryosu:
Siteniz çoğunlukla mesai saatlerinde (9:00 – 18:00) trafik alıyor. Turbo yenilemeyi 03:00'e zamanlıyorsunuz. Sonuç: Asla çalışmaz çünkü kimse wp-cron.php'yi tetiklemek için 3'te uyanık olmaz.
Güvenilir Çözüm: Sunucu Taraflı Cron
WordPress cron'u ile değiştirin gerçek sunucu cron site trafiğinden bağımsız olarak çalışan.
Adım 1: WordPress Cron'u devre dışı bırak
Ekle wp-config.php (önce /* That's all, stop editing! */):
/**
* Disable WordPress cron - we'll use server cron instead
*/
define('DISABLE_WP_CRON', true);
Adım 2: Sunucu Crontab Girişi Ekle
Seçenek A: PHP CLI Kullanarak (Önerilir)
# Open crontab editor
crontab -e
# Add this line (runs daily at 3 AM)
0 3 * * * php /var/www/html/yoursite/wp-cron.php >/dev/null 2>&1
Seçenek B: wget Kullanımı
# Add this line to crontab
0 3 * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Seçenek C: curl Kullanarak
# Add this line to crontab
0 3 * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Değiştir /var/www/html/yoursite gerçek WordPress kurulum yolunuzla.
Adım 3: PHP Yürütme Sınırlarını Artırın
Ekle wp-config.php:
/**
* Increase limits for cron tasks (turbo file generation)
*/
@ini_set('max_execution_time', 300); // 5 minutes
@ini_set('memory_limit', '512M'); // 512 MB RAM
Veya oluşturun .user.ini WordPress kök dizininizde:
max_execution_time = 300
memory_limit = 512M
Özet
Turbo cron hatalarının temel nedenleri:
- WordPress cron güvenilmezdir (trafik bağımlı)
- PHP yürütme süresi sınırları uzun süren görevleri sonlandırır
Önerilen çözüm:
- ✅ WP_CRON'u Devre Dışı Bırak
- ✅ Sunucu tarafı zamanlayıcı kullanın
- ✅ PHP limitlerini artırın
- ✅ Düşük trafik saatlerinde planlayın
Sonuç: Müşterileriniz için doğru ürün sayımlarıyla güvenilir, otomatik turbo dosya yeniden oluşturma.
Ref: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/