✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Laravelin Cron Schedulen käyttö tehtävien automatisointiin

15

Cron-työ on hyödyllinen tehtävämme automatisoimiseksi määritetyssä ajassa säännöllisin väliajoin. Laravel toimittaa tehtävän aikataulutuksen ominaisuuden, joka tekee cron-aikataulusta erittäin helppoa. Aikaisemmin meidän on lisättävä erillinen merkintä kutakin cron-työtä varten. Laravelissa meidän on vain lisättävä yksi komento, ja se suorittaa kaikki cron-työt automaattisesti. Kutakin tehtävää varten ei tarvitse lisätä erillistä merkintää. Tässä artikkelissa tutkitaan cron-aikataulun käyttöä Laravelissa, mikä auttaa meitä automatisoimaan tehtävämme.

Miksi meidän on suoritettava Cron?

On olemassa useita esimerkkejä, joista voimme mainita, missä meidän on suoritettava cron. Sinulla voi olla verkkokauppa ja haluat lähettää kampanjatarjouksia käyttäjillesi. Tai sinulla on jäsenyyssivusto ja sinun on lähetettävä muistutussähköposti käyttäjille uusintatilausajasta. Nämä ovat kaksi esimerkkiä, joissa voimme käyttää cronia. Mitä teemme, on kirjoittaa ohjelma, joka voi suorittaa tämän tehtävän, ja asettaa sille cron. Palvelimesi etsii cronille määritettyä aikaa ja kun se saavutetaan, se suorittaa ohjelman automaattisesti. Meidän ei tarvitse katsoa kelloa ja suorittaa ohjelmaa manuaalisesti.

Tämä prosessi helpottaa elämäämme. Voimme keskittyä muihin tärkeisiin juttuihimme ja sijoittaa aikaa viisaaseen asiaan.

Cron-aikataulu Laravelissa

Otetaan artikkelissamme todellinen esimerkki. Oletetaan, että Laravel-tietokannassamme on joukko käyttäjiä. Jokaisen keskiyön aikana meidän on lähetettävä kaikille käyttäjille sähköposti, jossa kuvataan uusi tarjouskampanjamme. Tällöin käyttäjillemme ilmoitetaan uusista tarjouksista, ja myynti voi saada enemmän huomiota.

Oletamme, että olet tallentanut kaikki käyttäjätietosi käyttäjien taulukkoon. Saamme käyttäjän sähköpostit tästä taulukosta ja lähetämme heille sähköpostin. Tietenkin meidän on kirjoitettava koodi tavalla, joka pitäisi suorittaa joka keskiyö.

Avaa app/Console/Kernel.phptiedosto editorissa ja lisää tiedostoon käyttäjämalli ja Mail-julkisivu.

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

Kernalluokassa on menetelmä, schedulejossa meidän on kirjoitettava yksi tai useampi aikataulu. Koska meidän on lähetettävä sähköposti käyttäjillemme, kirjoitamme koodin seuraavasti.

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

Yllä olevassa koodissa otamme käyttäjät tietokannasta ja lähetämme heille sähköpostin Mail-julkisivun lähetystavalla. Tässä meidän on luotava mail.blade.phptiedostot resources/views/emailshakemistoon.

mail.blade.php

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

Koska tehtävämme on lähettää sähköpostia keskiyöllä, käytimme daily()menetelmää. Laravel tarjoaa erilaisia ​​aikataulutaajuusvaihtoehtoja, jotka saisit dokumentaatiosivulta.

Lisää Cron-merkintä palvelimellesi

Lopuksi, jotta voit asettaa tämän cron-työn palvelimelle, sinun on lisättävä cron-merkinnän alapuolelle palvelimellesi.

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

Varmista, että olet määrittänyt projektisi polun oikein. Tämä Cron kutsuu Laravel-komentoajastinta joka minuutti. Se suorittaa automaattisesti aikataulun: aja komento ja arvioi ajoitetut tehtävät ja suorittaa suoritettavat tehtävät.

Toivomme, että olet ehkä oppinut käyttämään cron-aikataulua Laravelissa ja automatisoimaan tehtävänne. Haluamme kuulla ajatuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja