laravel

Tutorial Laravel Queues

Tutorial Laravel Queues
Coada Laravel este una dintre cele mai utile caracteristici ale cadrului Laravel. Această caracteristică este utilizată pentru a aștepta sarcini care necesită mult timp și pentru a efectua sarcini ulterior pentru a îmbunătăți performanța și eficiența aplicației Laravel. Această caracteristică oferă diferite tipuri de cozi în back-end-uri, cum ar fi Amazon SQS, Redis, Beanstalk, driver sincron sau bază de date relațională. Un driver de coadă nul este utilizat pentru a renunța la joburile din coadă. Fișierul de configurare al cozii este stocat în locație config / coadă.php. Un exemplu obișnuit de utilizare a cozii Laravel este trimiterea de e-mailuri. Când este necesar să gestionați un număr mare de e-mailuri în aplicația Laraval, atunci este mai bine să utilizați cozile Laravel pentru a accelera procesarea. Acest tutorial arată cum să utilizați cozile Laravel pentru a trimite un număr mare de e-mailuri.

Condiții prealabile

Înainte de a începe acest tutorial, mai întâi, finalizați următoarele sarcini:

  1. Instalați un nou proiect Laravel
  2. Configurați conexiunea la baza de date
  3. Configurați configurația pentru trimiterea e-mailurilor (Puteți verifica tutorialul pentru trimiterea e-mailurilor pentru a trimite e-mailuri utilizând SMTP)

Creați tabel

Trebuie să creați locuri de munca tabel în baza de date pentru a stoca toate cozile. Rulați următoarea comandă de la terminal pentru a crea fișierul de migrare pentru locuri de munca masa.

$ php artisan coada: tabel

Puteți deschide fișierul de migrare din locație baza de date / migrații /. Fișierul conține următorul conținut.

utilizați Illuminate \ Database \ Migrations \ Migration;
utilizați Illuminate \ Database \ Schema \ Blueprint;
utilizați Illuminate \ Support \ Facades \ Schema;
clasa CreateJobsTable extinde migrarea

/ **
* Rulați migrațiile.
*
* @return nul
* /
funcție publică sus ()

Schema :: create („joburi”, funcție (Blueprint $ tabel)
$ table-> bigIncrements ('id');
$ tabel-> șir ('coadă') -> index ();
$ table-> longText ('sarcină utilă');
$ tabel-> unsignedTinyInteger („încercări”);
$ tabel-> unsignedInteger ('rezervat_at') -> nul ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('created_at');
);

/ **
* Inversați migrațiile.
*
* @return nul
* /
funcție publică jos ()

Schema :: dropIfExists ('joburi');

Rulați următoarea comandă de la terminal pentru a crea fișierul loc de munca masa.

$ php artisan migrează

Creați o clasă de e-mail

Trebuie să creați o clasă care poate fi trimisă prin e-mail pentru a trimite e-mailuri din aplicația Laravel. Rulați următoarea comandă pentru a crea clasa de poștă numită Trimite email în locație aplicație / Mail.

$ php artisan make: mail SendEmail

Conținutul acestei clase este prezentat mai jos. Numele fișierului de vizualizare care este utilizat în construi() metoda va fi creată în următoarea parte a acestui tutorial.

spațiu de nume App \ Mail;
utilizați Iluminare \ Autobuz \ Queueable;
utilizați Iluminați \ Contracte \ Coadă \ Ar trebui să faceți coadă;
utilizați Iluminează \ Mail \ Mailable;
utilizați Iluminează \ Coadă \ SerializeazăModele;
clasa SendEmail extinde Mailable

utilizați Queueable, SerializesModels;
/ **
* Creați o nouă instanță de mesaj.
*
* @return nul
* /
funcție publică __construct ()

//

/ **
* Construiți mesajul.
*
* @return $ this
* /
funcție publică build ()

/ * Definiți numele vizualizării care va fi utilizat pentru șablonul de e-mail * /
returnează $ this-> view ('e-mail');

Creați vizualizare

Creați fișierul de vizualizare numit e-mail.lamă.php cu următorul conținut care va fi trimis ca corp de e-mail.

Bine ați venit la Linux Hint


Aflați Laravel cu ușurință

Creați o clasă de locuri de muncă

Rulați următoarea comandă pentru a crea o clasă de job. Numele fișierului clasei de locuri de muncă numit Trimiterea de e-mail.php va fi creat în locație aplicație / Locuri de muncă.

$ php artisan make: job SendingEmail

Conținutul Trimiterea de e-mail.php este prezentat mai jos. Trebuie să setați o adresă de e-mail validă în interiorul la() metoda mâner() funcție pentru a testa dacă codul funcționează corect. Setați adresa de e-mail validă în locul „Adresa de e-mail a destinatarului” în interiorul la() metodă pentru a verifica dacă coada funcționează corect.

spațiu de nume App \ Jobs;
utilizați Iluminare \ Autobuz \ Queueable;
utilizați Iluminați \ Contracte \ Coadă \ Ar trebui să faceți coadă;
utilizați Illuminate \ Foundation \ Bus \ Dispatchable;
utilizați Iluminare \ Coadă \ InteractsWithQueue;
utilizați Iluminează \ Coadă \ SerializeazăModele;
/ * Am adăugat pachetele necesare * /
folosiți Mail;
utilizați App \ Mail \ SendEmail;
clasa SendingEmail implementează ShouldQueue

utilizați Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Creați o nouă instanță de job.
*
* @return nul
* /
funcție publică __construct ()

//

/ **
* Executați jobul.
*
* @return nul
* /
handle funcție publică ()

/ * Creați obiectul clasei care poate fi trimisă și trimiteți e-mail * /
$ email = new SendEmail ();
/ * Setați o adresă de e-mail validă * /
Mail :: to ('Destinatar Email Address') -> send ($ email);

Creați controler

Rulați următoarea comandă pentru a crea un controler care să gestioneze coada. Cand handleQueue () funcția controlerului este executată, operația de coadă va fi împinsă și e-mailul va fi trimis.

$ php artisan make: controller SendEmailController

SendEmailController.php

spațiu de nume App \ Http \ Controllers;
utilizați Iluminare \ Http \ Request;
/ * Adăugați pachetele necesare * /
folosiți aplicația \ Jobs \ SendingEmail;
utilizați Carbon \ Carbon;
clasa SendEmailController extinde Controller

/ **
* Utilizarea cozilor Laravel
* /
handle funcție publicăQueue ()

/ * Împingeți noua lucrare în coada de lucrări * /
expediere (nou SendingEmail ());
/ * Imprimați mesajul după trimiterea e-mailului * /
ecou „E-mailul a fost trimis”;

Adăugați ruta

Deschide web.php fișier din rute folder și adăugați următoarea rută pentru a executa opera de coadă utilizând controlerul.

Route :: get ('e-mail', '[e-mail protejat]');

Rulați următoarea adresă URL în browser pentru a verifica dacă codul funcționează. Deschideți adresa de e-mail a destinatarului pentru a verifica dacă a fost primit un e-mail nou.

http: // localhost: 8000 / emailqueue

Adăugați întârziere

Deschide Trimiterea de e-mail.php fișier din nou și modificați conținutul fișierului handleQueue () funcție pentru a adăuga întârzierea de cinci secunde la lucrările de coadă.

spațiu de nume App \ Http \ Controllers;
utilizați Iluminare \ Http \ Request;
/ * Adăugați pachetele necesare * /
folosiți aplicația \ Jobs \ SendingEmail;
utilizați Carbon \ Carbon;
clasa SendEmailController extinde Controller

/ **
* Utilizarea cozilor Laravel
* /
handle funcție publicăQueue ()

/ * Creați un nou obiect de coadă cu o întârziere de 5 secunde * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Împingeți noua lucrare în coada de lucrări * /
expediere ($ emailJob);
/ * Imprimați mesajul după trimiterea e-mailului * /
ecou „E-mail trimis după cinci secunde”;

Din nou, rulați următoarea adresă URL în browser pentru a verifica dacă codul funcționează. Aici, e-mailul va fi trimis după cinci secunde, folosind metoda delay () de cinci secunde.

http: // localhost: 8000 / emailqueue

Verificați căsuța de e-mail a adresei de e-mail a destinatarului pentru a afla dacă a fost primit un e-mail nou după 5 secunde. Un e-mail cu următorul conținut va fi primit dacă lucrarea la coadă funcționează corect.

Concluzie

Acest tutorial arată utilizarea foarte simplă a cozii Laravel. Puteți utiliza cozile Laravel în diferite scopuri, pe baza cerințelor aplicației dvs. Sper că acest tutorial a ajutat cititorii să înțeleagă mai bine conceptele de bază ale cozilor Laravel.

AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...