Modo Turbo: Por que as atualizações automáticas do Cron falham (e como corrigi-las)
O Problema
Usuários relatam que o WOOF Modo Turbo a regeneração automática de arquivos não funciona de forma confiável:
Sintomas:
- Modo turbo ativado com o agendamento "Cron Diário"
- Job cron do WordPress
woof_turbo_do_recreate_filenão está sendo criado - A geração manual de arquivos funciona perfeitamente
- Geração de atualizações automáticas arquivos parciais/vazios
- A regeneração de arquivos parece nunca ser concluída
Impacto:
- Contagens de filtro desatualizadas exibidas aos clientes
- Experiência do usuário ruim (ver produtos que não existem)
- Intervenção manual diária necessária
Por que isso acontece: Duas causas principais
1. Condição de Corrida de Limpeza de Arquivo
Quando o WOOF regenera o arquivo turbo, ele segue este 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);
}
O Problema:
Se o seu site tiver muitos produtos (1000+), o Passo 2 pode levar de 60 a 120 segundos. Se o PHP max_execution_time (geralmente 30-60 segundos) é excedido, o script termina no meio da escrita, deixando o arquivo vazio ou parcial.
2. Cron do WordPress Não é um Cron Real
Cron do WordPress (wp-cron.php) tem limitações críticas:
❌ Não é garantido que funcione – só dispara quando alguém visita seu site
❌ Pode ser bloqueado – plugins de cache podem impedir a execução
❌ Nenhuma tarefa de longa execução – morto por limites de execução PHP
❌ Tempo não confiável – pode executar tarde ou não executar de todo
Cenário do mundo real:
Seu site recebe tráfego principalmente durante o horário comercial (9h – 18h). Você agenda a regeneração turbo para as 3h. Resultado: Nunca é executado porque ninguém visita às 3 da manhã para acionar wp-cron.php.
A Solução Confiável: Cron do Lado do Servidor
Substituir o cron do WordPress por cron de servidor real que roda independentemente do tráfego do site.
Passo 1: Desative o Cron do WordPress
Adicionar a wp-config.php (antes /* That's all, stop editing! */):
/**
* Disable WordPress cron - we'll use server cron instead
*/
define('DISABLE_WP_CRON', true);
Passo 2: Adicionar Entrada do Crontab do Servidor
Opção 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
Opção 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
Opção 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
Substituir /var/www/html/yoursite com o caminho real da sua instalação do WordPress.
Passo 3: Aumentar Limites de Execução PHP
Adicionar 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
Ou crie .user.ini na raiz do seu WordPress:
max_execution_time = 300
memory_limit = 512M
Resumo
Causas principais das falhas do cron turbo:
- O cron do WordPress não é confiável (dependente do tráfego)
- Limites de tempo de execução PHP matam tarefas de longa duração
Correção recomendada:
- ✅ Desabilitar WP_CRON
- ✅ Use cron do lado do servidor
- ✅ Aumente os limites do PHP
- ✅ Agende durante horários de baixo tráfego
Resultado: Regeneração de arquivo turbo confiável e automática com contagens de produtos precisas para seus clientes.
Ref: https://pluginus.net/support/topic/woof_turbo_do_recreate_file-cron-job-is-missing/