Desarrollo de Aplicaciones

¿Qué es Laravel Schedule?

Laravel Schedule nos permite ejecutar acciones que se repiten más de una vez en el tiempo y así ahorrarnos tener que ejecutar una misma acción varias veces.

¿Qué es Laravel Schedule?

¿Cómo utilizar Laravel Schedule en una tienda online?

Imaginemos que cada día tenemos que generar un informe de las ventas de nuestra tienda online. No vamos a acordarnos todos los días de entrar y ejecutar algo, así que hacemos un CRON. Editar el CRON puede ser peligroso, si en vez de hacer un -l para listar o un -e para editar ponemos un -r podemos eliminarlo.

Con Laravel podemos poner solo una instrucción en nuestro CRON que se ejecute cada minuto y dejar que sea el propio framework y nuestro código el que decida cuándo y qué ejecutar. Así que eso es lo que haremos. 

Podemos definir una acción y luego decirle que lo ejecute con este formato: `->cron('* * * * * *')`, esto es lo mismo que hemos puesto en el crontab. Aquí podemos hacer tantas normas como queramos, pero, ¿no sería mejor poder decirle "hazlo cada 5 minutos"? Pues nuestro Schedule nos permite hacer precisamente eso: `->everyFiveMinutes();`. 

Hay multitud de métodos que podemos utilizar para definir "cuando" hay que hacer. El "que" no se queda atrás, estamos haciendo un CRON para que nuestro Laravel realice acciones, si estas acciones están definidas en la misma aplicación quiere decir que no hay que setear php's absurdos para levantar la aplicación y hacer cosas complejas, solo hay que usar el mismo código que pondríamos en un Controller, o algo similar. 

Al ejecutar estas acciones podemos querer guardar una especie de Log, podemos ejecutar `->sendOutputTo($filePath)` y simplemente todo lo que escribamos acabará en ese fichero. También podemos enviar un email con este output: `->emailOutputTo('foo@example.com')`, o enviar pings `->pingBefore($ur`)`, `->thenPing($url);`, o realizar alguna acción justo antes o justo después de realizar la principal con `->before()`y `after()`. 

Las opciones son muchas y variadas, además de que solo tocamos el crontab una sola vez y nos podemos centrar en programar.

Comparte este artículo

Artículos Relacionados