laravel

„Laravel Queues“ pamoka

„Laravel Queues“ pamoka
„Laravel“ eilė yra viena iš naudingesnių „Laravel“ karkaso savybių. Ši funkcija naudojama laukti daug laiko reikalaujančių užduočių ir atlikti užduotis vėliau, siekiant pagerinti „Laravel“ programos našumą ir efektyvumą. Ši funkcija pateikia skirtingų tipų eiles back-end’uose, pvz., „Amazon SQS“, „Redis“, „Beanstalk“, sinchroninę tvarkyklę ar reliacinę duomenų bazę. Neleistos eilės tvarkyklė naudojama eilės užduotims atmesti. Eilės konfigūracijos failas saugomas vietoje konfigūruoti / eilę.php. Dažnas „Laravel“ eilės naudojimo pavyzdys yra el. Laiškų siuntimas. Kai „Laraval“ programoje reikia apdoroti daug el. Laiškų, tada geriau naudoti „Laravel“ eiles, kad paspartintumėte apdorojimą. Šioje pamokoje parodyta, kaip naudoti „Laravel“ eiles norint išsiųsti daug el. Laiškų.

Būtinos sąlygos

Prieš pradėdami šią mokymo programą, pirmiausia atlikite šias užduotis:

  1. Įdiekite naują „Laravel“ projektą
  2. Nustatykite duomenų bazės ryšį
  3. Nustatykite el. Laiškų siuntimo konfigūraciją (galite patikrinti el. Pašto siuntimo instrukciją, jei norite siųsti el. Laiškus naudodami SMTP)

Sukurti lentelę

Turite sukurti darbo vietų lentelę duomenų bazėje, kad būtų išsaugotos visos eilės. Paleiskite šią komandą iš terminalo, kad sukurtumėte darbo vietų stalo.

$ php amatininkų eilė: lentelė

Perkėlimo failą galite atidaryti iš vietos duomenų bazė / migracijos /. Faile yra toks turinys.

naudokite „Illuminate \ Database \ Migrations \ Migration“;
naudokite „Illuminate \ Database \ Schema \ Blueprint“;
naudokite „Illuminate \ Support \ Facades \ Schema“;
klasė „CreateJobsTable“ pratęsia perkėlimą

/ **
* Paleiskite migracijas.
*
* @return negalioja
* /
viešoji funkcija aukštyn ()

Schema :: create ('Job', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('naudingoji apkrova');
$ table-> unsignedTinyInteger ('bandymai');
$ table-> unsignedInteger ('reserve_at') -> niekinis ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('sukurtas_at');
);

/ **
* Apverskite migracijas.
*
* @return negalioja
* /
viešoji funkcija žemyn ()

Schema :: dropIfExists ('darbai');

Norėdami sukurti, paleiskite šią komandą iš terminalo darbas stalo.

$ php amatininkai migruoja

Sukurti pašto klasę

Norėdami išsiųsti el. Laiškus iš „Laravel“ programos, turite sukurti el. Pašto klasę. Paleiskite šią komandą, kad sukurtumėte pavadintą pašto klasę Siųsti laišką vietoje programa / paštas.

$ php amatininko gaminys: paštas SendEmail

Šios klasės turinys parodytas žemiau. Peržiūros failo pavadinimas, naudojamas statyti () metodas bus sukurtas kitoje šios pamokos dalyje.

vardų sritis App \ Mail;
naudokite „Illuminate \ Bus \ Queueable“;
naudokite „Illuminate \ Contracts \ Queue“ „ShouldQueue“;
naudokite „Illuminate \ Mail \ Mailable“;
naudoti „Illuminate \ Queue \ SerializesModels“;
klasės „SendEmail“ prailgina „Mailable“

naudoti „Queueable“, „SerializesModels“;
/ **
* Sukurkite naują pranešimo egzempliorių.
*
* @return negalioja
* /
viešoji funkcija __construct ()

//

/ **
* Sukurkite pranešimą.
*
* @return $ tai
* /
viešosios funkcijos kūrimas ()

/ * Apibrėžkite rodinio pavadinimą, kuris bus naudojamas el. Pašto šablonui * /
grąžinti $ this-> rodinį ('email');

Sukurti rodinį

Sukurkite rodinio failą pavadinimu paštu.ašmenys.php turinį, kuris bus išsiųstas kaip el. pašto turinys.

Sveiki atvykę į „Linux“ patarimą


Sužinok Laravel lengvai

Sukurkite darbo klasę

Norėdami sukurti darbo klasę, vykdykite šią komandą. Pavadintas darbo klasės failo pavadinimas Siunčiamas el. Paštas.php bus sukurta toje vietoje programa / darbai.

$ php amatininko gaminys: darbas siunčiamas el

Programos turinys Siunčiamas el. Paštas.php yra parodyta žemiau. Programoje turite nustatyti galiojantį el. Pašto adresą iki () metodas rankena () funkcija patikrinti, ar kodas veikia tinkamai. Vietoje. Nustatykite galiojantį el. Pašto adresą „Gavėjo el. Pašto adresas“ viduje iki () metodas patikrinti, ar eilė veikia tinkamai.

vardų srities programa \ Jobs;
naudokite „Illuminate \ Bus \ Queueable“;
naudokite „Illuminate \ Contracts \ Queue“ „ShouldQueue“;
naudoti „Illuminate \ Foundation \ Bus \ Dispatchable“;
naudokite „Illuminate \ Queue \ InteractsWithQueue“;
naudoti „Illuminate \ Queue \ SerializesModels“;
/ * Pridėjo reikiamus paketus * /
naudoti paštą;
naudoti „App \ Mail \ SendEmail“;
klasės „SendingEmail“ įgyvendina „ShouldQueue“

naudoti „Dispatchable“, „InteractsWithQueue“, „Queueable“, „SerializesModels“;
/ **
* Sukurkite naują darbo egzempliorių.
*
* @return negalioja
* /
viešoji funkcija __construct ()

//

/ **
* Atlikite darbą.
*
* @return negalioja
* /
viešosios funkcijos rankena ()

/ * Sukurkite pašto klasės objektą ir siųskite el. Laišką * /
$ email = new SendEmail ();
/ * Nustatykite galiojantį el. Pašto adresą * /
Mail :: to ('Receiver Email Address') -> siųsti ($ email);

Sukurti valdiklį

Paleiskite šią komandą, kad sukurtumėte valdiklį, tvarkantį eilę. Kai rankena eilė () vykdoma valdiklio funkcija, eilės darbas bus perduotas ir el. laiškas bus išsiųstas.

$ php amatininko gamintojas: valdiklis SendEmailController

„SendEmailController“.php

vardų srities programa \ Http \ valdikliai;
naudoti Illuminate \ Http \ Request;
/ * Pridėkite reikiamus paketus * /
naudoti „App \ Jobs \ SendingEmail“;
naudoti anglies \ anglies;
klasės „SendEmailController“ išplečia valdiklį

/ **
* Naudojant „Laravel“ eiles
* /
viešosios funkcijos „handQueue“ ()

/ * Įdėkite naują darbą į darbo eilę * /
išsiuntimas (naujas „SendingEmail“);
/ * Spausdinti pranešimą išsiunčiant el. Laišką * /
aidas „El. paštas išsiųstas“;

Pridėti maršrutą

Atidaryk internetas.php failą iš maršrutais aplanką ir pridėkite šį maršrutą, kad vykdytumėte eilės užduotį naudodami valdiklį.

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

Paleiskite šį URL naršyklėje, kad patikrintumėte, ar kodas veikia. Atidarykite imtuvo el. Pašto adresą, kad patikrintumėte, ar gautas naujas el. Laiškas.

http: // localhost: 8000 / emailqueue

Pridėti vėlavimą

Atidaryk Siunčiamas el. Paštas.php dar kartą failą ir modifikuokite rankena eilė () funkcija pridėti penkių sekundžių vėlavimą prie eilės darbų.

vardų srities programa \ Http \ valdikliai;
naudoti Illuminate \ Http \ Request;
/ * Pridėkite reikiamus paketus * /
naudoti „App \ Jobs \ SendingEmail“;
naudoti anglies \ anglies;
klasės „SendEmailController“ išplečia valdiklį

/ **
* Naudojant „Laravel“ eiles
* /
viešosios funkcijos rankena eilė ()

/ * Sukurkite naują eilės objektą su 5 sekundžių vėlavimu * /
$ emailJob = (naujas SendingEmail ()) -> delsa (anglis :: now () -> addSeconds (5));
/ * Įdėkite naują darbą į darbo eilę * /
išsiuntimas ($ emailJob);
/ * Spausdinti pranešimą išsiunčiant el. Laišką * /
aidas „El. paštas išsiųstas po penkių sekundžių“;

Vėlgi paleiskite šį URL naršyklėje, kad patikrintumėte, ar kodas veikia. Čia el. Laiškas bus išsiųstas po penkių sekundžių, naudojant „delay“ (penkių sekundžių) metodą.

http: // localhost: 8000 / emailqueue

Patikrinkite gavėjo el. Pašto dėžutę, kad sužinotumėte, ar po 5 sekundžių buvo gautas naujas el. Laiškas. Jei eilės darbas veikia tinkamai, bus gautas el. Laiškas su tokiu turiniu.

Išvada

Ši pamoka parodo labai paprastą „Laravel“ eilės naudojimą. „Laravel“ eiles galite naudoti įvairiems tikslams, atsižvelgdami į savo programos reikalavimus. Tikiuosi, kad ši pamoka padėjo skaitytojams geriau suprasti pagrindines „Laravel“ eilių sąvokas.

Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...
Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...
Geriausios „Linux“ skirtos „Gamepad“ žemėlapių sudarymo programos
Jei jums patinka žaisti žaidimus „Linux“ su žaidimų pultu, o ne įprasta klaviatūra ir pelės įvesties sistema, yra keletas jums naudingų programų. Daug...