Planificador de tareas PHP: tareas similares a cron sin crond

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es un planificador de tareas PHP?

Un planificador de tareas (Job Scheduler) es una biblioteca para PHP que permite ejecutar tareas periódicas (tareas cron) directamente desde el código de la aplicación, sin depender del crond del sistema. Es especialmente útil en hosting compartido, donde el acceso a crontab es limitado, o en entornos contenerizados (Docker).

¿Para qué sirve un planificador?

  • Autonomía — todas las reglas de periodicidad se almacenan en el código PHP, no en archivos de configuración del sistema.
  • Flexibilidad — se puede cambiar dinámicamente la programación, pausar tareas y registrar la ejecución.
  • Integración — se integra fácilmente en frameworks (Laravel, Symfony) y ORM.

Instalación

Instálelo a través de Composer:

composer require dragonmantank/cron-expression

Esta es la biblioteca básica para trabajar con expresiones cron. Para un planificador completo, a menudo se usa peppeocchi/php-cron-scheduler:

composer require peppeocchi/php-cron-scheduler

Funciones principales

  • Análisis de expresiones cron — verifica si la hora actual coincide con el patrón (* * * * *).
  • Multitarea — ejecución de múltiples tareas en un solo proceso.
  • Paralelismo — a través de exec() o pcntl_fork().
  • Registro — salida de stdout/stderr a un archivo.
  • Manejo de errores — reintentos, notificaciones.

Ejemplo de código

<?phprequire 'vendor/autoload.php';

use GO\\Scheduler;

$scheduler = new Scheduler();

// Tarea: cada minuto$scheduler->call(function() { echo "Ejecutándose a las " . date('Y-m-d H:i:s') . "";})->everyMinute();

// Tarea: cada hora a los 30 minutos$scheduler->call('cleanup_logs')->at('30 * * * *');

// Tarea: días laborables a las 9:00$scheduler->exec('php artisan report:generate')->at('0 9 * * 1-5');

// Ejecución de todas las tareas listas$scheduler->run();

Cuándo usarlo

El planificador de tareas PHP es ideal para:

  • envío de correos electrónicos masivos programados;
  • limpieza de datos obsoletos (logs, sesiones);
  • generación de informes en horas de baja actividad;
  • sincronización con APIs externas (una vez por hora);
  • actualización de caché (cada 5 minutos).

No reemplace el cron del sistema para operaciones críticas del sistema (copia de seguridad de BD, actualización de certificados) — úselo como una capa adicional para la lógica de negocio.

Recommendations