Scripts de cron e CLI
O agendador pseudo-cron e os scripts opcionais de linha de comando para hospedagens avançadas.
O TubePress executa seus trabalhos recorrentes — recalcular classificações, verificar jobs de transcodificação, importar feeds, atualizar sitemaps e muito mais — sem exigir que você configure um crontab do sistema. Esta página explica o pseudo-cron, o heartbeat que o mantém ativo e os scripts de linha de comando opcionais para hosts avançados.
O pseudo-cron
O CronManager é um agendador no estilo WordPress. As tarefas são registradas com um nome e um intervalo, e CronManager::run() é chamado uma vez ao final de cada renderização de página. Cada tarefa só é executada se tempo suficiente tiver passado desde a última execução.
// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
Promo::rebuildCache(); // runs at most every 10 minutes
});Foi projetado para ser seguro em qualquer host:
- Bloqueio atômico. Um
UPDATEcondicional na tabelasettingsreivindica cada execução, de modo que duas requisições simultâneas jamais podem executar a mesma tarefa duas vezes. - Timestamps persistentes. Os horários da última execução são armazenados em
settings(comautoload = 0), portanto o agendamento sobrevive a reinicializações e falhas — o próximo carregamento de página simplesmente retoma de onde parou. - Backoff automático. Uma tarefa que continua falhando é retentada com um intervalo crescente exponencialmente (limitado a uma hora) até se recuperar, e o contador de falhas é redefinido no sucesso.
O heartbeat — sem crontab necessário
Um pseudo-cron só dispara quando páginas estão sendo renderizadas, o que é um problema para um site novo ou de baixo tráfego. O TubePress resolve isso com um heartbeat autogerenciado: um processo CLI leve (bin/heartbeat.php) que faz ping na sua página inicial aproximadamente a cada 50 segundos, para que o agendador continue funcionando mesmo com zero visitantes.
- Ele é protegido por PID e reiniciado automaticamente por qualquer requisição web caso venha a morrer — você não precisa iniciá-lo ou supervisioná-lo.
- Desative-o em tempo de execução definindo
heartbeat_enabledcomo0.
crontab -e, sem supervisor, sem serviços extras para manter.O que é executado no agendador
O núcleo e os plugins incluídos registram suas próprias tarefas — por exemplo, recálculo de pontuação CTR, despacho e nova tentativa de jobs de transcodificação, importações de feed, processamento de catálogo, trabalhos de tradução por IA e atualizações de sitemap. À medida que você ativa os subsistemas, eles adicionam suas tarefas automaticamente; não há nada para configurar.
Scripts CLI opcionais
Para operações pesadas ou únicas, alguns scripts de linha de comando são fornecidos em bin/ e podem ser executados manualmente ou a partir de um crontab real em hosts compatíveis. Eles incluem workers de longa duração (para downloads de catálogo e exclusões em massa) e auxiliares de manutenção. Execute-os com o PHP CLI do sistema a partir da raiz do projeto:
php bin/heartbeat.php # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobsUsando um crontab real (avançado)
Se você preferir controlar o agendador pelo sistema operacional — por exemplo, em um site de alto tráfego onde deseja uma temporização precisa e previsível — você pode desativar o heartbeat e adicionar uma única entrada de cron do sistema que requisita sua página inicial (ou executa o heartbeat uma vez) em um intervalo curto. A maioria dos operadores nunca precisa disso; o heartbeat integrado é suficiente.
Próximos passos
Ainda com dúvidas?
Abra um ticket pelo painel e nossa equipe vai ajudá-lo.