...
✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Utilizzo di Cron Schedule in Laravel per automatizzare le attività

113

Cron job è utile per automatizzare la nostra attività all’ora specificata a intervalli regolari. Laravel viene fornito con una funzione per la pianificazione delle attività che rende la pianificazione di cron estremamente semplice. In passato, dovevamo aggiungere una voce separata per ogni cron job. In Laravel, dobbiamo solo aggiungere un comando ed esegue automaticamente tutti i nostri lavori cron. Non è necessario aggiungere una voce separata per ogni attività. In questo articolo, studiamo l’utilizzo della pianificazione cron in Laravel che ci aiuta ad automatizzare le nostre attività.

Perché abbiamo bisogno di eseguire Cron?

Ci sono diversi esempi che possiamo menzionare in cui è necessario eseguire un cron. Potresti gestire un negozio online e desideri inviare offerte promozionali ai tuoi utenti. Oppure hai un sito Web di abbonamento e devi inviare l’e-mail di promemoria agli utenti sul periodo di rinnovo dell’abbonamento. Questi sono i due esempi in cui possiamo usare il cron. Quello che facciamo è scrivere un programma in grado di svolgere questo compito e impostare un cron per esso. Il tuo server cercherà l’ora specificata per cron e quando arriva quella volta, eseguirà automaticamente il programma. Non abbiamo bisogno di guardare l’orologio ed eseguire il programma manualmente.

Questo processo rende la nostra vita facile. Possiamo concentrarci sulle nostre altre cose importanti e investire tempo in una cosa saggia.

Programma Cron a Laravel

Per il nostro articolo, prendiamo un esempio del mondo reale. Diciamo che abbiamo un gruppo di utenti nel nostro database Laravel. Ogni mezzanotte dobbiamo inviare un’e-mail a tutti gli utenti descrivendo la nostra nuova offerta promozionale. In questo modo, i nostri utenti ricevono una notifica sulle nuove offerte e le tue vendite possono ricevere maggiore attenzione.

Supponiamo che tu abbia memorizzato tutte le informazioni dei tuoi utenti nella tabella "utenti". Otterremo le email degli utenti da questa tabella e invieremo loro un’email. Ovviamente, dobbiamo scrivere un codice in modo che venga eseguito ogni mezzanotte.

Apri il app/Console/Kernel.phpfile nel tuo editor e aggiungi il modello utente e la facciata della posta al file.

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

Kernalclass ha un metodo in schedulecui dobbiamo scrivere una o più pianificazioni. Poiché dobbiamo inviare un’e-mail ai nostri utenti, scriviamo il codice come segue.

<?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
    }
    ....

Nel codice sopra, prendiamo gli utenti dal database e inviamo loro un’e-mail utilizzando il metodo di invio della facciata della posta. Qui dobbiamo creare un mail.blade.phpfile nella resources/views/emailsdirectory.

mail.blade.php

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

Poiché il nostro compito è inviare un’e-mail a mezzanotte, abbiamo utilizzato il daily()metodo. Laravel fornisce diverse opzioni di frequenza di pianificazione che otterresti nella pagina della documentazione.

Aggiungi la voce Cron al tuo server

Infine, per impostare questo cron job su un server dovresti aggiungere sotto la voce cron al tuo server.

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

Assicurati di aver impostato correttamente il percorso del tuo progetto. Questo Cron chiamerà l’utilità di pianificazione dei comandi di Laravel ogni minuto. Esegue automaticamente il comando schedule:run e valuta le attività pianificate ed esegue le attività dovute.

Ci auguriamo che tu possa aver imparato a utilizzare la pianificazione cron in Laravel e automatizzare le tue attività. Ci piacerebbe sentire i tuoi pensieri nella sezione commenti qui sotto.

articoli Correlati

Fonte di registrazione: 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