Cron y scripts de CLI
El programador pseudo-cron y los scripts opcionales de línea de comandos para hosts avanzados.
TubePress ejecuta sus tareas recurrentes — recálculo de clasificaciones, supervisión de trabajos de transcodificación, importación de feeds, actualización de sitemaps y más — sin necesidad de configurar un crontab del sistema. Esta página explica el pseudo-cron, el latido que lo mantiene activo y los scripts de línea de comandos opcionales para hosts avanzados.
El pseudo-cron
El CronManager es un planificador al estilo de WordPress. Las tareas se registran con un nombre y un intervalo, y CronManager::run() se llama una vez al final de cada renderizado de página. Cada tarea solo se ejecuta si ha pasado suficiente tiempo desde la última vez que se ejecutó.
// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
Promo::rebuildCache(); // runs at most every 10 minutes
});Está diseñado para funcionar de forma segura en cualquier host:
- Bloqueo atómico. Un
UPDATEcondicional sobre la tablasettingsreclama cada ejecución, por lo que dos solicitudes simultáneas nunca pueden ejecutar la misma tarea dos veces. - Marcas de tiempo persistentes. Los tiempos de última ejecución se almacenan en
settings(conautoload = 0), de modo que el calendario sobrevive a reinicios y fallos — la siguiente carga de página simplemente retoma donde se dejó. - Retroceso automático. Una tarea que sigue fallando se reintenta con un intervalo que crece exponencialmente (con un máximo de una hora) hasta que se recupera, y el contador de fallos se reinicia al tener éxito.
El latido — no se necesita crontab
Un pseudo-cron solo se activa cuando se están renderizando páginas, lo que es un problema para un sitio recién creado o de poco tráfico. TubePress resuelve esto con un latido autogestionado: un proceso CLI ligero (bin/heartbeat.php) que hace ping a tu página de inicio aproximadamente cada 50 segundos para que el planificador siga funcionando incluso con cero visitantes.
- Está protegido por PID y es relanzado automáticamente por cualquier solicitud web si alguna vez muere — no es necesario iniciarlo ni supervisarlo.
- Desactívalo en tiempo de ejecución estableciendo
heartbeat_enableden0.
crontab -e, sin supervisor, sin servicios adicionales que mantener.Qué se ejecuta en el planificador
El núcleo y los plugins incluidos registran sus propias tareas — por ejemplo, el recálculo de puntuaciones CTR, el despacho y reintento de trabajos de transcodificación, importaciones de feeds, procesamiento de catálogos, trabajos de traducción con IA y actualización de sitemaps. A medida que activas subsistemas, estos añaden sus tareas automáticamente; no hay nada que configurar.
Scripts CLI opcionales
Para operaciones intensivas o puntuales, algunos scripts de línea de comandos se incluyen en bin/ y pueden ejecutarse manualmente o desde un crontab real en hosts compatibles. Incluyen trabajadores de larga duración (para descargas de catálogos y eliminaciones masivas) y herramientas de mantenimiento. Ejecútalos con el PHP CLI del sistema desde la raíz del proyecto:
php bin/heartbeat.php # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobsUsar un crontab real (avanzado)
Si prefieres controlar el planificador desde el sistema operativo — por ejemplo, en un sitio de alto tráfico donde deseas una temporización ajustada y predecible — puedes desactivar el latido y añadir una única entrada de cron del sistema que solicite tu página de inicio (o ejecute el latido una vez) en un intervalo corto. La mayoría de los operadores nunca necesitan esto; el latido integrado es suficiente.
Próximos pasos
¿Todavía con dudas?
Abre un ticket desde tu panel y nuestro equipo te ayudará.