Joan carvajal
Que mal que el equipo de Platzi no lea los comentarios , hace 2 años que las personas escribieron los comentarios y es la hora y no se ha actualizado lastimosamente voy a deja el curso
Automatiza con confianza las tareas críticas en Laravel: desde enviar correos a las 3 a. m. hasta limpiar tablas, el sistema de programación con cron y el Kernel centraliza todo en un solo punto. Aquí verás cómo usar Artisan, el método schedule y controles como ejecución en un único servidor, modo mantenimiento y logs en storage.
¿Cómo programar tareas en Laravel con cron y Kernel?
Programar tareas en Laravel se hace en el método schedule de la clase Kernel ubicada en app/console/Kernel.php. Con un único cron que ejecuta php artisan schedule:run, el sistema revisa qué tareas están pendientes y las dispara automáticamente.
¿Dónde registrar comandos personalizados de Artisan?
¿Cómo definir tareas con closures y frecuencias?
// app/console/Kernel.php protected function schedule($schedule) { // Comando Inspire diario. $schedule->command('inspire')->daily(); // Closure simple. $schedule->call(function () { echo 'Hola'; }); }
¿Qué cron ejecutar para disparar el scheduler?
php artisan schedule:run
¿Qué métodos de frecuencia y control ofrece schedule?
Además de las frecuencias como diariamente, cada minuto o cada cinco minutos, existen métodos para controlar el comportamiento: ejecutar en un único servidor, permitir ejecución en modo mantenimiento, evitar solapamientos y enviar salida a un archivo de log.
¿Cómo fijar frecuencias como daily, cada minuto o Mondays?
$schedule->command('sendnewsletter command') ->mondays(); $schedule->command('sendemail-verification-reminder-command --class') ->daily();
¿Cómo limitar ejecución con on_server y mantenimiento?
php artisan down
$schedule->command('sendnewsletter command') ->mondays() ->on_server() ->even_in_maintenance_mode();
¿Cómo evitar solapamientos y registrar logs?
$schedule->command('inspire') ->daily() ->without_overlapping() ->send_output_to('storage/inspire.log');
¿Qué buenas prácticas y próximos pasos aplicar?
Usa estos controles para ejecutar solo una instancia, tolerar mantenimientos y dejar huella de cada ejecución en logs. Así, enviar newsletters los lunes o recordatorios de verificación a diario será más confiable.
¿Te animas a ajustar el comando de newsletter con estas características y contar cómo lo harías en tu proyecto? Comparte tu enfoque en los comentarios.
Puedes agregar el siguiente cron:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Tambien puedes considerar usar queues:
Si estas trabajando en desarrollo puedes probar tus comandos sin usar un cron con el comando:
php artisan queue:work
Esto correra internamente durante N tiempo comandos y Jobs pero deben tomar en cuenta implementar el trait "shouldQueue" para mandar todo a la pila de tareas.
En produccion necesitaras configurar un supervisor (si usas ubuntu no es mas que un apt-get) :
https://laravel.com/docs/7.x/queues#supervisor-configuration
Joan carvajal
Que mal que el equipo de Platzi no lea los comentarios , hace 2 años que las personas escribieron los comentarios y es la hora y no se ha actualizado lastimosamente voy a deja el curso
Jorge Bou-saad
No conocia el modo mantenimiento y tengo varios an/os trabajando con Laravel...el curso ha sido bastante interesante.
Tomas Goldenberg
es necesario el cron del server no entendi esa parte final
Jean Nuñez
Si es necesario pero todo demas lo controla desde el schedule
Sergio Ojeda
ProfesorSi, el cron es necesario en el servidor para que pueda ejecutar los comandos definidos en el Schedule.
Brian Sánchez Izquierdo
Sí estan siguiendo el curso con windows/laragon o xampp (como yo), les recomendaría tomar el curso de docker para que puedan lanzar una aplicación que corra en el stack LEMP y así pode usar crontab, si no saben usar crontab les recomiendo el curso de introducción a la línea de comandos.
Kevin Paul Huayhuas Cariapaza
buena
Deivis Andrés Cervantes
Para que no tengan que configurar ningún crontab para que se ejecuten sus comandos pueden usar el comando php artisan schedule:work de Laravel.
Juan Guillermo Perez Cardozo
la verdad si falto que completara la explicación , haciendo el crontab
Jose Luis Arellano
Este curso no sirve de mucho, muy mala explicación.