Novedades en Laravel 5: Planificador

El nuevo planificador de tareas de Laravel 5 nos permite ejecutar acciones y comandos utilizando una interfaz parecida a crontab.

Una nueva funcionalidad de Laravel 5 es el planificador de artisan (scheduler). Su funcionamiento es sencillo, añadimos el comando php artisan schedule:run al cron del sistema (cada minuto) y nuestras tareas se ejecutarán cuando lo indiquemos. Para añadir el planificador basta con añadir la siguiente línea a nuestro cron del sistema:

* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1

Después editamos el fichero app/Console/Kernel.php y agregamos nuestras tareas al método schedule().

Podemos añadir un comando de artisan al planificador:

$schedule->command('cache:clear')
  ->hourly()
  ->environments('production')
  ->evenInMaintenanceMode()
  ->sendOutputTo($file)
  ->emailOutputTo('mail@example.com');

Así como llamar al método de alguna clase:

$schedule->call('SomeClass@method')->dailyAt('10:00');

Utilizar una función anónima para incluir código in-situ:

$schedule->call(function()
{
  // Nuestra tarea
})->everyThirtyMinutes();

E incluso podemos añadir comandos del sistema al planificador (muy útil para combinar con gulp/grunt):

$schedule->exec('composer self-update')->weeklyOn(1, '8:00');

Aquí tienes una lista de los tiempos de ejecución que podemos añadir al planificador:

->hourly()
->daily()
->at($time)
->dailyAt($time)
->twiceDaily()
->weekdays()
->mondays()
->tuesdays()
->wednesdays()
->thursdays()
->fridays()
->saturdays()
->sundays()
->weekly()
->weeklyOn($day, $time)
->monthly()
->yearly()
->everyFiveMinutes()
->everyTenMinutes()
->everyThirtyMinutes()
->days($days)

Puedes consultar más metodos de este planificador en este fichero.

Compartir en

Facebook Twitter Google+ LinkedIn