Turbo-Modus: Warum automatische Cron-Updates fehlschlagen (und wie man sie behebt)
Das Problem
Benutzer berichten, dass WOOFs Turbo-Modus automatische Neuerzeugung von Dateien funktioniert nicht zuverlässig:
Symptome:
- Turbo-Modus aktiviert mit „Täglicher Cron“-Zeitplan
- WordPress Cron Job
woof_turbo_do_recreate_filewird nicht erstellt - Manuelle Dateigenerierung funktioniert perfekt
- Automatische Updates generieren teilweise/leere Dateien
- Die Neuerstellung von Dateien scheint nie abgeschlossen zu werden
Auswirkung:
- Veraltete Filteranzahlen für Kunden angezeigt
- Schlechte Benutzererfahrung (Anzeigen von Produkten, die nicht existieren)
- Tägliche manuelle Intervention erforderlich
Warum das passiert: Zwei Hauptursachen
1. Dateibereinigung Race Condition
Wenn WOOF die Turbo-Datei neu generiert, folgt es diesem Prozess:
// 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);
}
Das Problem:
Wenn Ihre Website viele Produkte hat (1000+), kann Schritt 2 60-120 Sekunden dauern. Wenn PHP’s max_execution_time (normalerweise 30-60 Sekunden) überschritten wird, bricht das Skript mitten im Schreiben ab und hinterlässt die Datei leer oder teilweise.
2. WordPress Cron ist kein echter Cron
WordPress Cron (wp-cron.php) hat kritische Einschränkungen:
❌ Nicht garantiert, dass es funktioniert – löst nur aus, wenn jemand Ihre Website besucht
❌ Kann blockiert werden – Caching-Plugins können die Ausführung verhindern
❌ Keine langlaufenden Aufgaben – durch PHP-Ausführungslimits beendet
❌ Unzuverlässiges Timing – kann spät oder gar nicht laufen
Reales Szenario:
Ihr Traffic kommt hauptsächlich während der Geschäftszeiten (9-18 Uhr). Sie planen die Turbo-Regeneration für 3 Uhr morgens. Ergebnis: Es läuft nie weil niemand um 3 Uhr morgens vorbeikommt, um wp-cron.php auszulösen.
Die zuverlässige Lösung: Server-Cron
Ersetzen Sie WordPress Cron durch echter Server-Cron das unabhängig vom Website-Traffic läuft.
Schritt 1: WordPress Cron deaktivieren
Hinzufügen zu wp-config.php (vorher /* That's all, stop editing! */):
/**
* Disable WordPress cron - we'll use server cron instead
*/
define('DISABLE_WP_CRON', true);
Schritt 2: Fügen Sie den Server-Cronjob-Eintrag hinzu
Option A: Verwendung von PHP CLI (empfohlen)
# 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
Option B: Verwendung von wget
# Add this line to crontab
0 3 * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Option C: Verwendung von curl
# Add this line to crontab
0 3 * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Ersetzen /var/www/html/yoursite mit Ihrem tatsächlichen WordPress-Installationspfad.
Schritt 3: Erhöhen Sie die PHP-Ausführungslimits
Hinzufügen zu 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
Oder erstellen .user.ini in deinem WordPress-Root:
max_execution_time = 300
memory_limit = 512M
Zusammenfassung
Hauptursachen für Turbo-Cron-Fehler:
- WordPress Cron ist unzuverlässig (verkehrsabgängig)
- PHP-Ausführungszeitlimits beenden langlaufende Aufgaben
Empfohlene Lösung:
- ✅ WP_CRON deaktivieren
- ✅ Server-seitigen Cron verwenden
- ✅ PHP-Limits erhöhen
- ✅ Planen Sie während Zeiten mit geringem Datenverkehr
Ergebnis: Zuverlässige, automatische Turbo-Dateigenerierung mit genauen Produktzahlen für Ihre Kunden.
Ref: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/