El manejador de tareas programadas permite concentrar las tareas de cron en un único punto, y desde allí, administrar y ejecutar las tareas programadas.
Las ventajas son:
crontab.
Para ejecutar las tareas programadas en nuestro servidor, depende en gran medida del servidor en sí. Sin perjuicio de ello, el código será similar a:
* * * * * /path/to/bin/php /path/to/console cron >/dev/null 2>&1
en donde los argumentos corresponden a:
Una expresión de cron que indique la frecuencia de ejecución. Para los fines prácticos, mantenga la expresión * * * * *, es decir, cada un minuto.
La ruta al ejecutable de php que procesará el pedido.
La ruta al archivo a ejecutar, en nuestro caso: console.
La tarea a ejecutar dentro de nuestra aplicación, para nosotros: cron.
En nuestro ejemplo, silenciamos la salida.
Importante! la directiva register_argc_argv de php debe estar habilitada.
En algunos servidores compartidos, la directiva register_argc_argv no está habilitada y no hay modo de hacerlo desde php.ini. En estos casos, es posible ejecura la opción -d en la línea de comando.
* * * * * /path/to/bin/php -d register_argc_argv=On /path/to/console cron >/dev/null 2>&1
Las tareas se definen como un plugin de nombre console-cron. En un archivo de gancho exec se debe escribir un código similar a:
return function(ConsoleCron &$cron)
{
$cron->on('* * * * *')?->call(function() {
// the task
});
}
Verifica que una expresión Cron corresponda con la hora actual. Devuelve el objeto para el caso de que corresponda o, de lo contrario, retorna null.
public ConsoleCron::on ( string $expression ): ConsoleCron|null
Una expresión Cron válida.
Ejecuta una llamada de retorno.
public ConsoleCron::call ( callable $callback )
La función de retorno que ejecuta la tarea programada.
Valida una expresión Cron.
public ConsoleCron::validate ( string $expression ): bool
La expresión Cron a validar.
La ruta para acceder a las configuraciones de Cron es Administración > Configuraciones > Herramientas > Consola > Cron.
Seleccione los plugins de tareas que desea habilitar.