Turbo Mode : Pourquoi les mises à jour automatiques Cron échouent (et comment les résoudre)
Le problème
Les utilisateurs signalent que le WOOF Mode Turbo la régénération automatique des fichiers ne fonctionne pas de manière fiable :
Symptômes :
- Mode Turbo activé avec la planification "Cron quotidien"
- tâche cron WordPress
woof_turbo_do_recreate_filen'est pas créé - La génération manuelle de fichiers fonctionne parfaitement
- Génère les mises à jour automatiques fichiers partiels/vides
- La régénération des fichiers ne semble jamais se terminer
Impact :
- Nombre de filtres obsolètes affichés aux clients
- Mauvaise expérience utilisateur (voir des produits qui n'existent pas)
- Intervention manuelle requise quotidiennement
Pourquoi cela se produit : Deux causes principales
1. Condition de concurrence pour le nettoyage des fichiers
Lorsque WOOF régénère le fichier turbo, il suit ce processus :
// 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);
}
Le Problème :
Si votre site a beaucoup de produits (1000+), l'étape 2 peut prendre 60 à 120 secondes. Si le PHP max_execution_time (généralement 30-60 secondes) est dépassé, le script se termine en cours d'écriture, laissant le fichier vide ou partiel.
2. Le Cron de WordPress n’est pas un vrai Cron
Cron WordPress (wp-cron.php) a des limitations critiques :
❌ Pas garanti de fonctionner – se déclenche uniquement lorsque quelqu'un visite votre site
❌ Peut être bloqué – les plugins de mise en cache peuvent empêcher l'exécution
❌ Aucune tâche de longue durée – tué par les limites d'exécution PHP
❌ Chronométrage peu fiable – peut s'exécuter tardivement ou pas du tout
Scénario réel :
Votre site reçoit du trafic principalement pendant les heures de bureau (9h-18h). Vous planifiez la régénération turbo pour 3h du matin. Résultat : Il ne s'exécute jamais car personne ne visite à 3 heures du matin pour déclencher wp-cron.php.
La solution fiable : Cron côté serveur
Remplacez le cron de WordPress par cron serveur réel qui fonctionne indépendamment du trafic du site.
Étape 1 : Désactiver le Cron de WordPress
Ajouter à wp-config.php (avant /* That's all, stop editing! */):
/**
* Disable WordPress cron - we'll use server cron instead
*/
define('DISABLE_WP_CRON', true);
Étape 2 : Ajouter une entrée Cron du serveur
Option A : Utiliser CLI PHP (Recommandé)
# 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 : Utilisation de 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 : Utilisation de curl
# Add this line to crontab
0 3 * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Remplacer /var/www/html/yoursite avec le chemin réel de votre installation WordPress.
Étape 3 : Augmenter les limites d'exécution PHP
Ajouter à 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
Ou créez .user.ini dans la racine de votre WordPress :
max_execution_time = 300
memory_limit = 512M
Résumé
Causes profondes des échecs de cron turbo :
- Le cron WordPress n'est pas fiable (dépendant du trafic)
- Les limites de temps d'exécution PHP tuent les tâches de longue durée
Correction recommandée :
- ✅ Désactiver WP_CRON
- ✅ Utiliser le cron côté serveur
- ✅ Augmentez les limites PHP
- ✅ Planifier pendant les heures de faible trafic
Résultat : Régénération fiable et automatique des fichiers turbo avec des comptes de produits précis pour vos clients.
Ref: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/