laravel

Vadnica za čakalne vrste Laravel

Vadnica za čakalne vrste Laravel
Čakalna vrsta Laravel je ena izmed uporabnejših lastnosti okvira Laravel. Ta funkcija se uporablja za čakanje na zamudne naloge in poznejše izvajanje nalog za izboljšanje učinkovitosti in učinkovitosti aplikacije Laravel. Ta funkcija zagotavlja različne vrste čakalnih vrst v zalednih koncih, kot so Amazon SQS, Redis, Beanstalk, sinhroni gonilnik ali relacijska baza podatkov. Ničelni gonilnik čakalne vrste se uporablja za zavrnitev opravil v čakalni vrsti. Konfiguracijska datoteka čakalne vrste je shranjena na lokaciji config / čakalno vrsto.php. Pogost primer uporabe čakalne vrste Laravel je pošiljanje e-pošte. Kadar je treba v aplikaciji Laraval obravnavati veliko število e-poštnih sporočil, potem je za pospešitev obdelave bolje uporabiti čakalne vrste Laravel. Ta vadnica prikazuje, kako uporabljati vrste Laravel za pošiljanje velikega števila e-poštnih sporočil.

Pogoji

Pred začetkom te vaje najprej opravite naslednje naloge:

  1. Namestite nov projekt Laravel
  2. Nastavite povezavo z bazo podatkov
  3. Nastavite konfiguracijo za pošiljanje e-pošte (preverite lahko vadnico za pošiljanje e-pošte za pošiljanje e-pošte prek SMTP)

Ustvari tabelo

Ustvariti morate službe tabelo v zbirki podatkov za shranjevanje vseh čakalnih vrst. Iz terminala zaženite naslednji ukaz, da ustvarite selitveno datoteko za službe tabela.

$ php obrtniška vrsta: tabela

Datoteko za selitev lahko odprete z lokacije baza podatkov / selitve /. Datoteka vsebuje naslednjo vsebino.

uporabite Illuminate \ Database \ Migrations \ Migration;
uporabite Illuminate \ Database \ Schema \ Blueprint;
uporabite shemo Illuminate \ Support \ Facades \;
class CreateJobsTable razširja selitev

/ **
* Zaženite selitve.
*
* @ vrnitev nična
* /
javna funkcija navzgor ()

Schema :: create ('jobs', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ tabela-> niz ('čakalna vrsta') -> indeks ();
$ tabela-> longText ('koristni tovor');
$ table-> unsignedTinyInteger ('poskusi');
$ table-> unsignedInteger ('rezerviran_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('created_at');
);

/ **
* Povratne selitve.
*
* @ vrnitev nična
* /
javna funkcija navzdol ()

Schema :: dropIfExists ('delovna mesta');

Iz terminala zaženite naslednji ukaz, da ustvarite službo tabela.

$ php obrtnik seli

Ustvari razred pošte

Za pošiljanje e-pošte iz aplikacije Laravel morate ustvariti razpoložljiv razred. Zaženite naslednji ukaz, da ustvarite imenovani poštni razred Pošlji sporočilo na lokaciji app / Mail.

$ php artisan make: mail SendEmail

Vsebina tega predavanja je prikazana spodaj. Ime datoteke pogleda, ki se uporablja v zgraditi () metoda bo ustvarjena v naslednjem delu te vadnice.

imenski prostor App \ Mail;
uporabite Illuminate \ Bus \ Queueable;
uporabite Illuminate \ Contracts \ Queue \ ShouldQueue;
uporabite Illuminate \ Mail \ Mailable;
uporabite Illuminate \ Queue \ SerializesModels;
razred SendEmail razširi Maible

uporabite Queueable, SerializesModels;
/ **
* Ustvarite nov primerek sporočila.
*
* @ vrnitev nična
* /
javna funkcija __construct ()

//

/ **
* Zgradite sporočilo.
*
* @ vrni $ this
* /
build javne funkcije ()

/ * Določite ime pogleda, ki bo uporabljeno za e-poštno predlogo * /
vrni $ this-> view ('email');

Ustvari pogled

Ustvarite poimenovano datoteko pogleda E-naslov.rezilo.php z naslednjo vsebino, ki bo poslana kot telo e-pošte.

Dobrodošli v namigu za Linux


Laravel se naučite enostavno

Ustvarite Job Class

Zaženite naslednji ukaz, da ustvarite razred opravila. Poimenovano ime datoteke delovnega razreda Pošiljanje e-pošte.php bo ustvarjena na lokaciji app / Jobs.

$ php artisan make: job SendingEmail

Vsebina Pošiljanje e-pošte.php je prikazano spodaj. V notranjosti datoteke morate nastaviti veljaven e-poštni naslov do () metoda ročaj () funkcija za preverjanje, ali koda deluje pravilno. Nastavite veljaven e-poštni naslov namesto 'E-poštni naslov prejemnika' znotraj do () , da preverite, ali vrsta deluje pravilno.

imenski prostor App \ Jobs;
uporabite Illuminate \ Bus \ Queueable;
uporabite Illuminate \ Contracts \ Queue \ ShouldQueue;
uporabite Illuminate \ Foundation \ Bus \ Dispatchable;
uporabite Illuminate \ Queue \ InteractsWithQueue;
uporabite Illuminate \ Queue \ SerializesModels;
/ * Dodani so potrebni paketi * /
uporabljati pošto;
uporabite App \ Mail \ SendEmail;
razred SendingEmail implementira ShouldQueue

uporabite Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Ustvarite nov primerek opravila.
*
* @ vrnitev nična
* /
javna funkcija __construct ()

//

/ **
* Izvedite delo.
*
* @ vrnitev nična
* /
ročaj javne funkcije ()

/ * Ustvari objekt predanega razreda in pošlji e-pošto * /
$ email = nov SendEmail ();
/ * Nastavite veljaven e-poštni naslov * /
Mail :: to ('E-poštni naslov prejemnika') -> pošlji ($ email);

Ustvari krmilnik

Zaženite naslednji ukaz, da ustvarite krmilnik za obdelavo čakalne vrste. Ko handleQueue () Funkcija krmilnika se izvede, opravilo čakalne vrste bo potisnjeno in e-pošta bo poslana.

$ php artisan make: krmilnik SendEmailController

SendEmailController.php

imenski prostor App \ Http \ Controllers;
uporabite Illuminate \ Http \ Request;
/ * Dodajte potrebne pakete * /
uporabite App \ Jobs \ SendingEmail;
uporabite Carbon \ Carbon;
razred SendEmailController razširja Controller

/ **
* Uporaba čakalnih vrst Laravel
* /
javna funkcija handleQueue ()

/ * Potisnite novo opravilo v čakalno vrsto * /
odpošiljanje (novo SendingEmail ());
/ * Natisni sporočilo po pošiljanju e-pošte * /
echo 'E-pošta je bila poslana';

Dodaj pot

Odprite splet.php datoteko iz poti mapo in dodajte naslednjo pot za izvedbo opravila v čakalni vrsti s krmilnikom.

Route :: get ('email', '[email protected]');

V brskalniku zaženite naslednji URL, da preverite, ali koda deluje. Odprite e-poštni naslov sprejemnika in preverite, ali je bilo prejeto novo e-poštno sporočilo.

http: // localhost: 8000 / emailqueue

Dodaj zamudo

Odprite Pošiljanje e-pošte.php znova datoteko in spremenite vsebino datoteke handleQueue () funkcija za dodajanje petsekundne zamude opravilom v čakalni vrsti.

imenski prostor App \ Http \ Controllers;
uporabite Illuminate \ Http \ Request;
/ * Dodajte potrebne pakete * /
uporabite App \ Jobs \ SendingEmail;
uporabite Carbon \ Carbon;
razred SendEmailController razširja Controller

/ **
* Uporaba čakalnih vrst Laravel
* /
javna funkcija handleQueue ()

/ * Ustvari nov objekt v čakalni vrsti s 5-sekundno zamudo * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Potisnite novo opravilo v čakalno vrsto * /
odprema ($ emailJob);
/ * Natisni sporočilo po pošiljanju e-pošte * /
echo 'E-pošta poslana po petih sekundah';

V brskalniku znova zaženite naslednji URL, da preverite, ali koda deluje. Tukaj bo e-poštno sporočilo poslano po petih sekundah z uporabo metode delay () v petih sekundah.

http: // localhost: 8000 / emailqueue

Preverite nabiralnik e-poštnega naslova prejemnika in ugotovite, ali je bilo po 5 sekundah prejeto novo e-poštno sporočilo. Če opravilo v čakalni vrsti deluje pravilno, bomo prejeli e-poštno sporočilo z naslednjo vsebino.

Zaključek

Ta vadnica prikazuje zelo preprosto uporabo čakalne vrste Laravel. Čakalne vrste Laravel lahko uporabite za različne namene, glede na vaše zahteve za prijavo. Upam, da je ta vadnica pomagala bralcem, da bolje razumejo osnovne koncepte čakalnih vrst Laravel.

Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...
Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...
Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...