HUSKY Turbo Mode: Otomatik Cron Güncellemeleri Neden Başarısız Olur (ve Nasıl Düzeltilir)
Sorun
Kullanıcılar, WOOF’un Turbo Modu otomatik dosya yenilemesinin güvenilir şekilde çalışmadığını bildiriyor:
Belirtiler:
- Turbo modu ”Günlük cron” zamanlaması ile etkinleştirildi
- WordPress cron işi
woof_turbo_do_recreate_fileoluşturulmuyor - Manuel dosya oluşturma mükemmel çalışıyor
- Otomatik güncellemeler kısmi/boş dosyalar oluşturuyor
- Dosya yenileme hiçbir zaman tamamlanmıyor gibi görünüyor
Etki:
- Müşterilere güncel olmayan filtre sayıları gösteriliyor
- Kötü kullanıcı deneyimi (var olmayan ürünleri görme)
- Her gün manuel müdahale gerekiyor
Bu Neden Olur: İki Temel Neden
1. Dosya Temizleme Yarış Koşulu
WOOF turbo dosyasını yenilediğinde şu işlemi 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 varsa (1000+), Adım 2 60-120 saniye sürebilir. PHP’nin max_execution_time (genellikle 30-60 saniye) aşılırsa, komut dosyası yazma ortasında sonlandırılır ve dosya boş veya kısmi kalır.
2. WordPress Cron Gerçek Cron Değil
WordPress cron (wp-cron.php) kritik sınırlamalara sahiptir:
❌ Çalışması garanti edilmez – yalnızca sitenizi ziyaret eden biri olduğunda tetiklenir
❌ Engellenebilir – önbellek eklentileri çalışmayı engelleyebilir
❌ Uzun süren görevler yok – PHP yürütme sınırları tarafından sonlandırılır
❌ Güvenilmez zamanlama – geç çalışabilir veya hiç çalışmayabilir
Gerçek dünya senaryosu:
Siteniz en çok iş saatlerinde (09:00 – 18:00) trafik alır. Turbo yenilemeyi sabah 3’e planladınız. Sonuç: Asla çalışmaz çünkü wp-cron.php’yi tetiklemek için sabah 3’te kimse ziyaret etmez.
Güvenilir Çözüm: Sunucu Tarafı Cron
WordPress cron’u, site trafiğinden bağımsız çalışan gerçek sunucu cron’u ile değiştirin.
Adım 1: WordPress Cron’u Devre Dışı Bırakın
wp-config.php dosyasına ekleyin (/* That's all, stop editing! */ öncesine):
/**
* Disable WordPress cron - we'll use server cron instead
*/
define('DISABLE_WP_CRON', true);
Adım 2: Sunucu Crontab Girişi Ekleyin
Seçenek A: PHP CLI Kullanma (Önerilen)
# 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 Kullanma
# 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 Kullanma
# Add this line to crontab
0 3 * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
/var/www/html/yoursite kısmını gerçek WordPress kurulum yolunuzla değiştirin.
Adım 3: PHP Yürütme Sınırlarını Artırın
wp-config.php dosyasına ekleyin:
/**
* 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 WordPress kök dizininizde .user.ini dosyası oluşturun:
max_execution_time = 300
memory_limit = 512M
Özet
Turbo cron başarısızlıklarının temel nedenleri:
- WordPress cron güvenilmezdir (trafiğe bağımlı)
- PHP yürütme süresi sınırları uzun süren görevleri sonlandırır
Önerilen düzeltme:
- ✅ WP_CRON’u devre dışı bırakın
- ✅ Sunucu tarafı cron kullanın
- ✅ PHP sınırlarını artırın
- ✅ Düşük trafik saatlerinde zamanlayın
Sonuç: Müşterileriniz için doğru ürün sayılarıyla güvenilir, otomatik turbo dosya yenileme.
Ref: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/