laravel

Vodič za redove Laravel

Vodič za redove Laravel
Red Laravel jedna je od korisnijih značajki okvira Laravel. Ova se značajka koristi za čekanje dugotrajnih zadataka i izvršavanje zadataka kasnije kako bi se poboljšala izvedba i učinkovitost aplikacije Laravel. Ova značajka pruža različite vrste redova u pozadinskim krajevima, kao što su Amazon SQS, Redis, Beanstalk, sinkroni upravljački program ili relacijska baza podataka. Pokretač nulskog reda koristi se za odbacivanje poslova u redu. Konfiguracijska datoteka reda spremljena je na tom mjestu konfiguracija / red čekanja.php. Uobičajeni primjer korištenja Laravelovog reda je slanje e-pošte. Kada je potrebno rješavati velik broj e-adresa u aplikaciji Laraval, tada je bolje koristiti redove Laravel da biste ubrzali obradu. Ovaj vodič pokazuje kako koristiti redove Laravel za slanje velikog broja e-poruka.

Preduvjeti

Prije početka ovog vodiča prvo izvršite sljedeće zadatke:

  1. Instalirajte novi projekt Laravel
  2. Postavite vezu s bazom podataka
  3. Postavljanje konfiguracije za slanje e-pošte (Vodič za slanje e-pošte možete provjeriti za slanje e-pošte putem SMTP-a)

Stvori tablicu

Morate stvoriti poslovi tablicu u bazi podataka za pohranu svih redova. Pokrenite sljedeću naredbu s terminala da biste kreirali datoteku za migraciju za poslovi stol.

$ php obrtnički red: tablica

Datoteku za migraciju možete otvoriti s mjesta baza podataka / migracije /. Datoteka sadrži sljedeći sadržaj.

koristite Illuminate \ Database \ Migrations \ Migration;
koristite Illuminate \ Database \ Schema \ Blueprint;
koristite Illuminate \ Support \ Facades \ Schema;
klasa CreateJobsTable proširuje Migraciju

/ **
* Pokrenite migracije.
*
* @povratak prazan
* /
javna funkcija gore ()

Schema :: create ('jobs', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('korisni teret');
$ table-> unsignedTinyInteger ('pokušaji');
$ table-> unsignedInteger ('rezervirani_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('created_at');
);

/ **
* Obrnuti migracije.
*
* @povratak prazan
* /
javna funkcija dolje ()

Schema :: dropIfExists ('poslovi');

Pokrenite sljedeću naredbu s terminala da biste kreirali posao stol.

$ php obrtnik migrira

Izradite klasu pošte

Morate stvoriti dostupnu klasu za slanje e-pošte iz aplikacije Laravel. Izvedite sljedeću naredbu da biste kreirali klasu pošte s imenom Pošalji e-mail na mjestu aplikacija / pošta.

$ php artisan make: mail SendEmail

Sadržaj ove klase prikazan je u nastavku. Naziv datoteke prikaza koji se koristi u izgraditi() metoda stvorit će se u sljedećem dijelu ovog vodiča.

prostor imena App \ Mail;
koristite Illuminate \ Bus \ Queueable;
koristite Illuminate \ Contracts \ Queue \ ShouldQueue;
koristite Illuminate \ Mail \ Mavable;
koristite Illuminate \ Queue \ SerializesModels;
klasa SendEmail proteže se na Dostupno

koristiti Queueable, SerializesModels;
/ **
* Stvorite novu instancu poruke.
*
* @povratak prazan
* /
javna funkcija __construct ()

//

/ **
* Izgradite poruku.
*
* @vrati $ ovo
* /
build javne funkcije ()

/ * Definirajte naziv pogleda koji će se koristiti za predložak e-pošte * /
vrati $ this-> view ('email');

Stvori pogled

Stvorite datoteku prikaza s imenom e-mail.oštrica.php sa sljedećim sadržajem koji će biti poslan kao tijelo e-pošte.

Dobrodošli u Linux Hint


Laravel naučite lako

Stvorite razred posla

Pokrenite sljedeću naredbu za stvaranje klase posla. Ime datoteke klase posla imenovano Slanje e-pošte.php stvorit će se na lokaciji aplikacija / poslovi.

$ php artisan make: job SendingEmail

Sadržaj Slanje e-pošte.php prikazano je dolje. Morate postaviti valjanu e-adresu unutar do() metoda ručka () funkcija za ispitivanje ispravnosti koda. Postavite valjanu adresu e-pošte umjesto 'Adresa e-pošte primatelja' unutar do() metoda za provjeru radi li red ispravno.

imenski prostor App \ Jobs;
koristite Illuminate \ Bus \ Queueable;
koristite Illuminate \ Contracts \ Queue \ ShouldQueue;
koristite Illuminate \ Foundation \ Bus \ Dispatchable;
koristite Illuminate \ Queue \ InteractsWithQueue;
koristite Illuminate \ Queue \ SerializesModels;
/ * Dodani su potrebni paketi * /
koristiti Mail;
koristite App \ Mail \ SendEmail;
klasa SendingEmail implementira ShouldQueue

koristiti Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Stvorite novu instancu posla.
*
* @povratak prazan
* /
javna funkcija __construct ()

//

/ **
* Izvršite posao.
*
* @povratak prazan
* /
ručica javne funkcije ()

/ * Stvorite objekt dostupne klase i pošaljite e-poštu * /
$ email = novi SendEmail ();
/ * Postavite valjanu adresu e-pošte * /
Mail :: na ('Adresa e-pošte primatelja') -> pošalji ($ email);

Izradite kontroler

Izvedite sljedeću naredbu za stvaranje kontrolera za upravljanje redom. Kada handleQueue () izvršava se funkcija kontrolera, posao reda će se gurnuti i e-pošta će se poslati.

$ php artisan make: kontroler SendEmailController

SendEmailController.php

prostor imena App \ Http \ Controllers;
koristite Illuminate \ Http \ Request;
/ * Dodajte potrebne pakete * /
koristiti App \ Jobs \ SendingEmail;
koristiti Carbon \ Carbon;
klasa SendEmailController proširuje Controller

/ **
* Korištenje redova Laravel
* /
javna funkcija handleQueue ()

/ * Gurnite novi posao u red poslova * /
otprema (nova SendingEmail ());
/ * Ispis poruke nakon slanja e-pošte * /
echo 'E-pošta je poslana';

Dodaj rutu

Otvori mreža.php datoteka iz rute mapu i dodajte sljedeću rutu za izvršavanje posla u redu čekanja pomoću kontrolera.

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

Pokrenite sljedeći URL u pregledniku kako biste provjerili radi li kôd. Otvorite adresu e-pošte primatelja da biste provjerili je li primljena nova e-pošta.

http: // localhost: 8000 / emailqueue

Dodaj odgodu

Otvori Slanje e-pošte.php ponovno datoteku i izmijenite sadržaj datoteke handleQueue () funkcija za dodavanje kašnjenja od pet sekundi zadacima u redu.

prostor imena App \ Http \ Controllers;
koristite Illuminate \ Http \ Request;
/ * Dodajte potrebne pakete * /
koristiti App \ Jobs \ SendingEmail;
koristiti Carbon \ Carbon;
klasa SendEmailController proširuje Controller

/ **
* Korištenje redova Laravel
* /
javna funkcija handleQueue ()

/ * Stvorite novi objekt u redu s odgodom od 5 sekundi * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Gurnite novi posao u red poslova * /
otprema ($ emailJob);
/ * Ispis poruke nakon slanja e-pošte * /
echo 'E-pošta poslana nakon pet sekundi';

Ponovno pokrenite sljedeći URL u pregledniku kako biste provjerili radi li kod. Ovdje će se e-pošta poslati nakon pet sekundi, koristeći metodu delay () od pet sekundi.

http: // localhost: 8000 / emailqueue

Provjerite pristiglu poštu adrese e-pošte primatelja da biste saznali je li nova e-pošta primljena nakon 5 sekundi. Primit će se e-pošta sa sljedećim sadržajem ako posao u redu radi ispravno.

Zaključak

Ovaj vodič prikazuje vrlo jednostavno korištenje reda Laravel. Redove Laravel možete koristiti u razne svrhe, ovisno o zahtjevima vaše prijave. Nadam se da je ovaj vodič pomogao čitateljima da bolje razumiju osnovne koncepte redova Laravel.

Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...
Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...
Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...