HUSKY - Products Filter Professional for WooCommerce

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_file n'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 :

  1. Le cron WordPress n'est pas fiable (dépendant du trafic)
  2. Les limites de temps d'exécution PHP tuent les tâches de longue durée

 

Correction recommandée :

  1. ✅ Désactiver WP_CRON
  2. ✅ Utiliser le cron côté serveur
  3. ✅ Augmentez les limites PHP
  4. ✅ 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/