HUSKY - Products Filter Professional for WooCommerce

Turbo Mode: Perché gli aggiornamenti cron automatici falliscono (e come risolverli)

Il problema

Gli utenti segnalano che WOOF Modalità Turbo la rigenerazione automatica dei file non funziona in modo affidabile:

Sintomi:

  • Modalità Turbo abilitata con pianificazione "Cron giornaliera"
  • WordPress cron job woof_turbo_do_recreate_file non viene creato
  • La generazione manuale dei file funziona perfettamente
  • Aggiornamenti automatici generano file parziali/vuoti
  • La rigenerazione dei file sembra non completarsi mai

Impatto:

  • Conteggi dei filtri non aggiornati visualizzati ai clienti
  • Esperienza utente scadente (vedere prodotti che non esistono)
  • Richiesto intervento manuale giornaliero

Perché succede: Due cause principali

1. Race Condition 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 PHP max_execution_time (di solito 30-60 secondi) viene superato, lo script termina a metà scrittura, lasciando il file vuoto o parziale.

2. WordPress Cron Non È un Vero Cron

cron di WordPress (wp-cron.php) ha limitazioni critiche:

Non garantito che funzioni – si attiva solo quando qualcuno visita il tuo sito
Può essere bloccato – i plugin di caching potrebbero impedire l'esecuzione
Nessun compito a lunga esecuzione – interrotto dai limiti di esecuzione di PHP
Timing inaffidabile – potrebbe essere eseguito in ritardo o non essere eseguito affatto

Scenario reale:
Il tuo sito riceve traffico principalmente durante l'orario lavorativo (9:00-18:00). Pianifichi la rigenerazione turbo per le 3:00. Risultato: Non viene mai eseguito perché nessuno visita alle 3 del mattino per attivare wp-cron.php.

La Soluzione Affidabile: Cron lato server

Sostituisci il cron di WordPress con cron del server reale che funziona indipendentemente dal traffico del sito.

Passaggio 1: Disabilita WordPress Cron

Aggiungi a wp-config.php (prima /* That's all, stop editing! */):

/**
 * Disable WordPress cron - we'll use server cron instead
 */
define('DISABLE_WP_CRON', true);

Passaggio 2: aggiungi l'attività pianificata 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: Usando 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 di WordPress.

Passaggio 3: Aumenta i limiti di esecuzione 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 tua root di WordPress:

max_execution_time = 300
memory_limit = 512M

Sommario

Cause principali dei fallimenti del turbo cron:

  1. Cron di WordPress non è affidabile (dipendente dal traffico)
  2. I limiti di tempo di esecuzione PHP uccidono i task a lunga esecuzione

 

Correzione consigliata:

  1. ✅ Disabilita WP_CRON
  2. ✅ Usa cron lato server
  3. ✅ Aumenta i limiti di PHP
  4. ✅ Pianifica durante le ore di minor traffico

Risultato: Rigenerazione file turbo affidabile e automatica con conteggi precisi dei prodotti per i tuoi clienti.

Rif: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/