✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Använda Cron Schema i Laravel för att automatisera uppgifter

11

Cron-jobb är användbart för att automatisera vår uppgift vid den angivna tiden med jämna mellanrum. Laravel levereras med en funktion för uppgiftsplanering vilket gör cron schema super enkelt. Tidigare måste vi lägga till en separat post för varje cron-jobb. I Laravel behöver vi bara lägga till ett kommando och det kör alla våra cron-jobb automatiskt. Det finns inget behov av att lägga till en separat post för varje uppgift. I den här artikeln studerar vi hur man använder cron schema i Laravel som hjälper oss att automatisera våra uppgifter.

Varför behöver vi köra kronan?

Det finns flera exempel vi kan nämna där vi behöver köra en cron. Du kanske driver en webbutik och du vill skicka kampanjerbjudanden till dina användare. Eller så har du en medlemswebbplats och du måste skicka e-postmeddelandet till användarna om deras förnyelseprenumerationsperiod. Det här är de två exemplen där vi kan använda Cron. Vad vi gör är att skriva ett program som kan utföra denna uppgift och ställa in en cron för den. Servern kommer att leta efter den angivna tiden för cron och när den tiden träffar kör programmet automatiskt. Vi behöver inte titta på klockan och köra programmet manuellt.

Denna process gör vårt liv enkelt. Vi kan fokusera på våra andra viktiga saker och investera tid i en klok sak.

Cron Schema i Laravel

För vår artikel, låt oss ta ett verkligt exempel. Låt oss säga att vi har en massa användare i vår Laravel-databas. Varje midnatt måste vi skicka ett e-postmeddelande till alla användare som beskriver vårt nya kampanjerbjudande. På så sätt får våra användare meddelanden om nya erbjudanden och din försäljning kan få mer uppmärksamhet.

Vi antar att du har lagrat all din användares information i tabellen ‘användare’. Vi kommer att få användarens e-postmeddelanden från den här tabellen och skicka dem ett e-postmeddelande. Naturligtvis måste vi skriva en kod på ett sätt som ska köras varje midnatt.

Öppna app/Console/Kernel.phpfilen i din redigerare och lägg till användarmodellen och e-postfasaden i filen.

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

Kernalklass har en metod scheduledär vi måste skriva en eller flera scheman. Eftersom vi behöver skicka ett e-postmeddelande till våra användare skriver vi koden enligt följande.

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

I koden ovan tar vi användare från databasen och skickar dem ett e-postmeddelande med hjälp av sändningsmetoden för Mail-fasaden. Här måste vi skapa mail.blade.phpfiler under resources/views/emailskatalogen.

mail.blade.php

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

Eftersom vår uppgift är att skicka ett mejl vid midnatt använde vi daily()metoden. Laravel erbjuder olika schemaläggningsfrekvensalternativ som du skulle få på dokumentationssidan.

Lägg till Cron-post till din server

Slutligen, för att ställa in detta cron-jobb på en server, bör du lägga till cron-posten nedan på din server.

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

Se till att du har ställt in projektets väg korrekt. Denna Cron kommer att ringa Laravel-kommandoschemaläggaren varje minut. Det kör automatiskt schema: kör kommandot och utvärdera dina schemalagda uppgifter och kör de uppgifter som ska betalas.

Vi hoppas att du kanske har lärt dig att använda cron schema i Laravel och automatisera dina uppgifter. Vi vill höra dina tankar i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer