Image for post
Image for post

En alguna oportunidad vamos a necesitar ejecutar tareas de forma automática en nuestro proyecto.

Debemos tener en cuenta que desarrollar un cron se divide en tres partes:

  1. Escribir el comando que va ejecutar dicho cron
  2. Escribir el cron propiamente.
  3. Registrar el cron en App/Console/Kernel.php
  4. Informarle al servidor que existe un demonio disponible para ejecutar un cron

Escribimos el comando y el cron: ejecutamos en nuestro caso lo siguiente.

php artisan make:command RegisteredItems

Ese comando va crear el archivo RegisteredItems dentro de App/Console/Commands/

Image for post
Image for post

En el primer apartado vamos a escribir como se va llamar nuestro comando (command:name) y en el segundo la descripción del mismo.

Image for post
Image for post

En la parte inferior del archivo específicamente en la función handle vamos a escribir lo que necesitamos que ejecute el cron.

Registramos el cron en App/Console/Kernel.php:

Image for post
Image for post

en $commands vamos a colocar el namespace del cron y en la función schedule vamos a escribir la ejecución de dicho cron en base al comando y en base al tiempo en que necesitamos que se realice la tarea. Las diferentes funciones en base al tiempo las puedes encontrar AQUÌ

Para verificar que nuestro comando queda registrado de forma correcta ejecutamos:

php artisan list
Image for post
Image for post
Del lado izquierdo podemos ver, registered -> registered:items
  1. Informarle al servidor que existe un demonio disponible para ejecutar un cron: ejecutamos..
crontab -e

y luego agregamos al archivo lo siguiente:

* * * * * php /path/to/project artisan schedule:run >/dev/null 2>&1
Image for post
Image for post

De esta forma, le indicamos al server que existe un demonio disponible y el demonio va ejecutar el cron en laravel cada minuto.

El proyecto lo pueden bajar AQUÌ

Eso es todo! espero que les sirva.

Saludos!

Written by

Padre de Ana Lucia ❤️ Software Developer 💻 #Js #React #Node

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store