HUSKY Turbo Mode: perché gli aggiornamenti automatici del cron falliscono (e come risolverli)
Il Problema
Gli utenti segnalano che la rigenerazione automatica dei file della Modalità Turbo di WOOF non funziona in modo affidabile:
Sintomi:
- Modalità Turbo abilitata con pianificazione "Cron giornaliero"
- Il cron job di WordPress
woof_turbo_do_recreate_filenon viene creato - La generazione manuale dei file funziona perfettamente
- Gli aggiornamenti automatici generano file parziali/vuoti
- La rigenerazione dei file sembra non completarsi mai
Impatto:
- Conteggi di filtro obsoleti mostrati ai clienti
- Esperienza utente scadente (vedere prodotti che non esistono)
- Necessità di intervento manuale quotidiano
Perché Succede: Due Cause Principali
1. Condizione di Competizione nella Pulizia dei File
Quando WOOF rigenera il file turbo, segue questo processo:
// 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);
}
Il Problema:
Se il tuo sito ha molti prodotti (1000+), il Passo 2 può richiedere 60-120 secondi. Se il max_execution_time di PHP (di solito 30-60 secondi) viene superato, lo script termina a metà scrittura, lasciando il file vuoto o parziale.
2. Il Cron di WordPress Non è un Vero Cron
Il cron di WordPress (wp-cron.php) ha gravi limitazioni:
❌ Non è garantito che venga eseguito – si attiva solo quando qualcuno visita il tuo sito
❌ Può essere bloccato – i plugin di caching potrebbero impedirne l'esecuzione
❌ Nessuna attività a lunga esecuzione – ucciso dai limiti di esecuzione di PHP
❌ Tempistiche inaffidabili – può essere eseguito in ritardo o per niente
Scenario reale:
Il tuo sito riceve traffico principalmente durante l'orario di lavoro (9:00 – 18:00). Pianifichi la rigenerazione turbo per le 3:00. Risultato: non viene mai eseguita perché nessuno visita il sito alle 3:00 per attivare wp-cron.php.
La Soluzione Affidabile: Cron Lato Server
Sostituisci il cron di WordPress con un vero cron server che funziona indipendentemente dal traffico del sito.
Passo 1: Disabilita il Cron di WordPress
Aggiungi a wp-config.php (prima di /* That's all, stop editing! */):
/**
* Disable WordPress cron - we'll use server cron instead
*/
define('DISABLE_WP_CRON', true);
Passo 2: Aggiungi una Voce Crontab del Server
Opzione A: Utilizzo di PHP CLI (Consigliato)
# 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
Opzione B: Utilizzo di wget
# Add this line to crontab
0 3 * * * wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Opzione C: Utilizzo di curl
# Add this line to crontab
0 3 * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Sostituisci /var/www/html/yoursite con il percorso effettivo della tua installazione WordPress.
Passo 3: Aumenta i Limiti di Esecuzione di PHP
Aggiungi a 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
Oppure crea .user.ini nella root di WordPress:
max_execution_time = 300
memory_limit = 512M
Riepilogo
Cause principali dei fallimenti del cron turbo:
- Il cron di WordPress è inaffidabile (dipendente dal traffico)
- I limiti di tempo di esecuzione di PHP uccidono le attività di lunga durata
Correzione consigliata:
- ✅ Disabilita WP_CRON
- ✅ Utilizza cron lato server
- ✅ Aumenta i limiti di PHP
- ✅ Pianifica nelle ore a basso traffico
Risultato: Rigenerazione automatica e affidabile del file turbo con conteggi prodotti accurati per i tuoi clienti.
Rif: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/