✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Uso de Cron Schedule en Laravel para automatizar tareas

1.185

Cron job es útil para automatizar nuestra tarea en el momento especificado en intervalos regulares. Laravel incluye una función para la programación de tareas que hace que la programación cron sea muy fácil. En el pasado, necesitábamos agregar una entrada separada para cada trabajo cron. En Laravel, solo necesitamos agregar un comando y ejecuta todos nuestros trabajos cron automáticamente. No es necesario agregar una entrada separada para cada tarea. En este artículo, estudiamos el uso del programa cron en Laravel que nos ayuda a automatizar nuestras tareas.

¿Por qué necesitamos ejecutar Cron?

Hay varios ejemplos que podemos mencionar en los que necesitamos ejecutar un cron. Es posible que tenga una tienda en línea y desee enviar ofertas promocionales a sus usuarios. O tiene un sitio web de membresía y necesita enviar el correo electrónico de recordatorio a los usuarios sobre su período de renovación de suscripción. Estos son los dos ejemplos en los que podemos usar cron. Lo que hacemos es escribir un programa que pueda realizar esta tarea y configurar un cron para ello. Su servidor buscará la hora especificada para cron y cuando llegue esa hora, ejecutará automáticamente el programa. No necesitamos mirar el reloj y ejecutar el programa manualmente.

Este proceso nos facilita la vida. Podemos concentrarnos en nuestras otras cosas importantes e invertir tiempo en algo sabio.

Cron Schedule en Laravel

Para nuestro artículo, tomemos un ejemplo del mundo real. Digamos que tenemos un montón de usuarios en nuestra base de datos de Laravel. Cada medianoche debemos enviar un correo electrónico a todos los usuarios describiendo nuestra nueva oferta promocional. Al hacerlo, nuestros usuarios reciben notificaciones sobre nuevas ofertas y sus ventas pueden recibir más atención.

Suponemos que almacenó toda la información de su usuario en la tabla ‘usuarios’. Recibiremos los correos electrónicos de los usuarios de esta tabla y les enviaremos un correo electrónico. Por supuesto, necesitamos escribir un código de manera que deba ejecutarse cada medianoche.

Abra el app/Console/Kernel.phparchivo en su editor y agregue el modelo de usuario y la fachada de correo al archivo.

<?php
 
namespace AppConsole;
 
use IlluminateConsoleSchedulingSchedule;
use IlluminateFoundationConsoleKernel as ConsoleKernel;
use AppUser; // User model
use Mail; // Mail Facade
 
class Kernel extends ConsoleKernel
{
    ....

KernalLa clase tiene un método scheduleen el que tenemos que escribir uno o varios horarios. Como necesitamos enviar un correo electrónico a nuestros usuarios, escribimos el código de la siguiente manera.

<?php
 
namespace AppConsole;
 
use IlluminateConsoleSchedulingSchedule;
use IlluminateFoundationConsoleKernel as ConsoleKernel;
use AppUser;
use Mail;
 
class Kernel extends ConsoleKernel
{
    ....
 
    /**
     * Define the application's command schedule.
     *
     * @param  IlluminateConsoleSchedulingSchedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->call(function() {
            $arr_users = User::all();
 
            if(count($arr_users) > 0) {
                foreach ($arr_users as $user) {
                    $name = $user->name;
                    $email = $user->email;
                    $data = array("name" => $name, "body" => "This is our new promotional offer");
                    Mail::send('emails.mail', $data, function($message) use ($name, $email) {
                        $message->to($email, $name)
                                ->subject('New Offer Launched');
                        $message->from('[email protected]', 'Artisans Web');
                    });
                }
            }
        })->daily();
 
        // tou can add more schedules here
    }
    ....

En el código anterior, tomamos a los usuarios de la base de datos y les enviamos un correo electrónico utilizando el método de envío de la fachada Mail. Aquí necesitamos crear mail.blade.phparchivos en el resources/views/emailsdirectorio.

mail.blade.php

Hi <strong>{{ $name }}</strong>,
 
<p>{{ $body }}</p>

Como nuestra tarea es enviar un correo electrónico a la medianoche, usamos el daily()método. Laravel proporciona diferentes opciones de frecuencia de programación que obtendría en la página de documentación.

Agregue una entrada cron a su servidor

Finalmente, para configurar este trabajo cron en un servidor, debe agregar la siguiente entrada cron a su servidor.

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Asegúrese de haber establecido correctamente la ruta de su proyecto. Este Cron llamará al programador de comandos de Laravel cada minuto. Ejecuta automáticamente el programa: ejecutar el comando y evaluar sus tareas programadas y ejecuta las tareas que deben realizarse.

Esperamos que haya aprendido a usar la programación cron en Laravel y a automatizar sus tareas. Nos gustaría conocer su opinión en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More