laravel

Laravel Queues bemutató

Laravel Queues bemutató
A Laravel sor a Laravel keretrendszer egyik hasznos tulajdonsága. Ez a szolgáltatás arra szolgál, hogy várjon az időigényes feladatokra, és később végezzen feladatokat a Laravel alkalmazás teljesítményének és hatékonyságának javítása érdekében. Ez a szolgáltatás különböző típusú várólistákat biztosít a háttér-végeken, például az Amazon SQS, a Redis, a Beanstalk, a szinkron illesztőprogram vagy a relációs adatbázis. A várólista-illesztőprogramot a sorban lévő feladatok elvetésére használják. A sor konfigurációs fájlja a helyszínen van tárolva config / queue.php. A Laravel-sor használatának egyik gyakori példája az e-mailek küldése. Ha a Laraval alkalmazásban nagyszámú e-mailt kell kezelni, akkor jobb a Laravel sorokat használni a feldolgozás felgyorsítása érdekében. Ez az oktatóanyag bemutatja, hogyan lehet a Laravel-sorokat nagyszámú e-mail küldésére használni.

Előfeltételek

Az oktatóanyag megkezdése előtt hajtsa végre a következő feladatokat:

  1. Telepítsen egy friss Laravel-projektet
  2. Állítsa be az adatbázis-kapcsolatot
  3. Állítsa be az e-mailek küldésének konfigurációját (Ellenőrizheti az e-mail küldési útmutatót az e-mail küldéséhez az SMTP használatával)

Táblázat létrehozása

Létre kell hoznia a munkahelyek táblázat az adatbázisban az összes várólista tárolásához. A migrációs fájl létrehozásához futtassa a következő parancsot a terminálról munkahelyek asztal.

$ php kézműves sor: táblázat

A migrációs fájlt a helyről nyithatja meg adatbázis / migrációk /. A fájl a következő tartalmat tartalmazza.

használja az Illuminate \ Database \ Migrations \ Migration alkalmazást;
használja az Illuminate \ Database \ Schema \ Blueprint parancsot;
használja az Illuminate \ Support \ Homlokzatok \ Schema alkalmazást;
A CreateJobsTable osztály kiterjeszti az áttelepítést

/ **
* Futtassa a migrációkat.
*
* @return érvénytelen
* /
nyilvános funkció fel ()

Séma :: create ('munkahelyek', function (Blueprint $ tábla)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('hasznos teher');
$ table-> unsignedTinyInteger ('kísérletek');
$ table-> unsignedInteger ('fenntartott_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('létrehozott_at');
);

/ **
* Fordítsa meg az áttéréseket.
*
* @return érvénytelen
* /
nyilvános funkció le ()

Séma :: dropIfExists ('munkahelyek');

Futtassa a következő parancsot a terminálról a munka asztal.

$ php kézműves vándorol

Hozzon létre e-mail osztályt

Létre kell hoznia egy postázható osztályt e-mailek küldéséhez a Laravel alkalmazásból. Futtassa a következő parancsot a nevű levelezési osztály létrehozásához Küldjön e-mailt a helyszínen app / Mail.

$ php kézműves gyártmány: mail SendEmail

Ennek az osztálynak a tartalma az alábbiakban látható. A nézetben használt fájlnév, amelyet a épít() módszer az oktatóanyag következő részében jön létre.

névtér App \ Mail;
használja az Illuminate \ Bus \ Queueable;
használja az Illuminate \ Contracts \ Queue \ ShouldQueue parancsot;
használja az Illuminate \ Mail \ Mailable;
használja az Illuminate \ Queue \ SerializesModels alkalmazást;
class SendEmail kiterjeszti a Mailable-t

használja a Queueable, SerializesModels alkalmazást;
/ **
* Hozzon létre egy új üzenetpéldányt.
*
* @return érvénytelen
* /
nyilvános funkció __construct ()

//

/ **
* Készítsd el az üzenetet.
*
* @return $ ezt
* /
nyilvános funkció kiépítése ()

/ * Adja meg az e-mail sablonhoz használt nézet nevét * /
return $ this-> view ('email');

Nézet létrehozása

Hozzon létre nevű nézetfájlt email.penge.php a következő tartalommal, amelyet e-mail törzsként küldünk el.

Üdvözöljük a Linux Tippben


Tanuld meg könnyedén a Laravel-t

Hozzon létre egy Munkaosztályt

Futtassa a következő parancsot egy jobosztály létrehozásához. A munkaosztály fájlneve megnevezve E-mail küldése.php a helyszínen jön létre alkalmazás / munkák.

$ php kézműves gyártmány: job SendingEmail

A tartalom E-mail küldése.php alább látható. Meg kell adnia egy érvényes e-mail címet a nak nek() módszere fogantyú() funkcióval tesztelheti, hogy a kód megfelelően működik-e. Állítsa be az érvényes e-mail címet a 'Fogadó e-mail címe' benne nak nek() módszer annak ellenőrzésére, hogy a sor megfelelően működik-e.

névtér App \ Jobs;
használja az Illuminate \ Bus \ Queueable;
használja az Illuminate \ Contracts \ Queue \ ShouldQueue parancsot;
használja az Illuminate \ Foundation \ Bus \ Dispatchable;
használja az Illuminate \ Queue \ InteractsWithQueue parancsot;
használja az Illuminate \ Queue \ SerializesModels alkalmazást;
/ * Hozzáadta a szükséges csomagokat * /
használja a Mail-t;
használja az App \ Mail \ SendEmail alkalmazást;
class SendingEmail implementálja a ShouldQueue-t

használja a Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Hozzon létre egy új munkapéldányt.
*
* @return érvénytelen
* /
nyilvános funkció __construct ()

//

/ **
* Végezze el a munkát.
*
* @return érvénytelen
* /
nyilvános funkció fogantyú ()

/ * Hozzon létre egy postázható osztály objektumot és küldjön e-mailt * /
$ email = new SendEmail ();
/ * Adjon meg érvényes e-mail címet * /
Levelezés :: címre ('Vevő e-mail címe') -> küldés ($ e-mail);

Vezérlő létrehozása

Futtassa a következő parancsot egy vezérlő létrehozásához a sor kezelésére. Amikor az handleQueue () A vezérlő funkciója végrehajtásra kerül, a várakozási feladat meg lesz tolva, és az e-mail elküldődik.

$ php kézműves gyártmány: vezérlő SendEmailController

SendEmailController.php

névtér App \ Http \ Controllers;
használja az Illuminate \ Http \ Request parancsot;
/ * Adja hozzá a szükséges csomagokat * /
használja az App \ Jobs \ SendingEmail alkalmazást;
használja Carbon \ Carbon;
osztály a SendEmailController kiterjeszti a Vezérlőt

/ **
* A Laravel Queues használata
* /
public function handleQueue ()

/ * Tolja az új munkát a jobsorba * /
feladás (új SendingEmail ());
/ * Üzenet nyomtatása e-mail küldés után * /
echo 'Az e-mailt elküldtük';

Útvonal hozzáadása

Nyissa meg a web.php fájl a útvonalak mappát, és adja hozzá a következő útvonalat a sormunka végrehajtásához a vezérlő segítségével.

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

Futtassa a következő URL-t a böngészőben annak ellenőrzéséhez, hogy a kód működik-e. Nyissa meg a vevő e-mail címét, és ellenőrizze, hogy érkezett-e új e-mail.

http: // localhost: 8000 / emailqueue

Add Delay

Nyissa meg a E-mail küldése.php fájl újra, és módosítsa a handleQueue () funkcióval hozzáadhatja az öt másodperces késleltetést a várólista feladatokhoz.

névtér App \ Http \ Controllers;
használja az Illuminate \ Http \ Request parancsot;
/ * Adja hozzá a szükséges csomagokat * /
használja az App \ Jobs \ SendingEmail alkalmazást;
használja Carbon \ Carbon;
osztály a SendEmailController kiterjeszti a Vezérlőt

/ **
* A Laravel Queues használata
* /
public function handleQueue ()

/ * Új sorobjektum létrehozása 5 másodperces késéssel * /
$ emailJob = (új SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Tolja az új munkát a jobsorba * /
feladás ($ emailJob);
/ * Üzenet nyomtatása e-mail küldés után * /
echo 'E-mail elküldve öt másodperc múlva';

Ismét futtassa a következő URL-t a böngészőben, hogy ellenőrizze, működik-e a kód. Itt az e-mailt öt másodperc elteltével küldjük el, a delay () öt másodperces módszerrel.

http: // localhost: 8000 / emailqueue

Ellenőrizze a vevő e-mail címének postaládáját, hogy megtudja, új üzenet érkezett-e 5 másodperc múlva. A következő tartalmú e-mailt kapunk, ha a várakozási feladat megfelelően működik.

Következtetés

Ez az oktatóanyag a Laravel-sor nagyon egyszerű használatát mutatja be. A Laravel várólistákat különféle célokra használhatja, az alkalmazás követelményeinek megfelelően. Remélem, hogy ez a bemutató segített az olvasóknak jobban megérteni a Laravel-sorok alapfogalmait.

Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...
Hogyan lehet megváltoztatni a bal és jobb egérgombokat a Windows 10 PC-n
Elég általános, hogy az összes számítógépes egéreszközt ergonómikusan a jobbkezes felhasználók számára tervezték. De vannak olyan egéreszközök, amelye...
Az egérkattintások emulálása az egérrel a Clickless Mouse használatával a Windows 10 rendszerben
Ha az egeret vagy a billentyűzetet nem megfelelő testtartásban, túlzott használat mellett használhatja, számos egészségügyi problémát okozhat, beleért...