HUSKY - Products Filter Professional for WooCommerce

Turbo Mode: Por qué fallan las actualizaciones automáticas de Cron (Y cómo solucionarlo)

El Problema

Los usuarios informan que el de WOOF Modo Turbo la regeneración automática de archivos no funciona de manera confiable:

Síntomas:

  • Modo turbo habilitado con programación "Cron diario"
  • trabajo cron de WordPress woof_turbo_do_recreate_file no se está creando
  • La generación manual de archivos funciona perfectamente
  • Las actualizaciones automáticas generan archivos parciales/vacíos
  • La regeneración de archivos parece no completarse nunca

Impacto:

  • Recuentos de filtro obsoletos mostrados a los clientes
  • Mala experiencia de usuario (ver productos que no existen)
  • Se requiere intervención manual diaria

Por qué sucede esto: Dos causas principales

1. Condición de carrera de limpieza de archivos

Cuando WOOF regenera el archivo turbo, sigue este proceso:

// 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);
}

El Problema:
Si tu sitio tiene muchos productos (1000+), el Paso 2 puede tomar 60-120 segundos. Si el PHP max_execution_time (normalmente 30-60 segundos) se excede, el script termina a mitad de la escritura, dejando el archivo vacío o parcial.

2. Cron de WordPress No Es un Cron Real

Cron de WordPress (wp-cron.php) tiene limitaciones críticas:

No se garantiza que se ejecute – solo se activa cuando alguien visita tu sitio
Puede ser bloqueado – los plugins de caché pueden impedir la ejecución
Sin tareas de larga duración – fallado por límites de ejecución de PHP
Tiempo poco fiable – puede ejecutarse tarde o no ejecutarse en absoluto

Escenario del mundo real:
Tu sitio recibe tráfico principalmente durante el horario comercial (9 AM – 6 PM). Programas la regeneración turbo para las 3 AM. Resultado: Nunca se ejecuta porque nadie visita a las 3 AM para activar wp-cron.php.

La Solución Confiable: Cron del Lado del Servidor

Reemplazar cron de WordPress con cron del servidor real que se ejecuta independientemente del tráfico del sitio.

Paso 1: Desactivar el Cron de WordPress

Añadir a wp-config.php (antes /* That's all, stop editing! */):

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

Paso 2: Añadir entrada de Crontab del Servidor

Opción A: Usando PHP CLI (Recomendado)

# 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

Opción 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

Opción C: Usando curl

# Add this line to crontab
0 3 * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Reemplazar /var/www/html/yoursite con la ruta real de tu instalación de WordPress.

Paso 3: Aumentar los límites de ejecución de PHP

Añadir 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

O crea .user.ini en la raíz de tu WordPress:

max_execution_time = 300
memory_limit = 512M

Resumen

Causas principales de fallos del cron turbo:

  1. El cron de WordPress no es fiable (dependiente del tráfico)
  2. Los límites de tiempo de ejecución de PHP matan las tareas de larga duración

 

Solución recomendada:

  1. ✅ Desactivar WP_CRON
  2. ✅ Usa cron del lado del servidor
  3. ✅ Aumentar límites de PHP
  4. ✅ Programa durante horas de bajo tráfico

Resultado: Regeneración de archivos turbo fiable y automática con recuentos de productos precisos para tus clientes.

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