laravel

Laravel Queues -opastus

Laravel Queues -opastus
Laravel-jono on yksi Laravel-kehyksen hyödyllisimmistä ominaisuuksista. Tätä ominaisuutta käytetään odottamaan aikaa vieviä tehtäviä ja suorittamaan tehtäviä myöhemmin parantamaan Laravel-sovelluksen suorituskykyä ja tehokkuutta. Tämä ominaisuus tarjoaa erityyppisiä jonoja taustapalveluissa, kuten Amazon SQS, Redis, Beanstalk, synkroninen ohjain tai relaatiotietokanta. Nollajonoajuria käytetään jonotettujen töiden hylkäämiseen. Jonon määritystiedosto on tallennettu sijaintiin config / jono.php. Yleinen esimerkki Laravel-jonon käytöstä on sähköpostien lähettäminen. Kun Laraval-sovelluksessa vaaditaan suurta määrää sähköposteja, käsittelyn nopeuttamiseksi on parempi käyttää Laravel-jonoja. Tässä opetusohjelmassa kerrotaan, kuinka Laravel-jonoja voidaan lähettää suuren määrän sähköposteja varten.

Edellytykset

Suorita seuraavat tehtävät ennen tämän opetusohjelman aloittamista:

  1. Asenna uusi Laravel-projekti
  2. Määritä tietokantayhteys
  3. Määritä sähköpostin lähetysasetukset (Voit tarkistaa sähköpostin lähettämisen opetusohjelman sähköpostin lähettämiseksi SMTP: n avulla)

Luo taulukko

Sinun on luotava työpaikkoja taulukko tietokannassa kaikkien jonojen tallentamiseksi. Suorita seuraava komento terminaalista luodaksesi siirtotiedosto työpaikkoja pöytä.

$ php käsityöläisten jono: taulukko

Voit avata siirtotiedoston sijainnista tietokanta / siirrot /. Tiedosto sisältää seuraavan sisällön.

käytä Illuminate \ Database \ Migrations \ Migration;
käytä Illuminate \ Database \ Schema \ Blueprint;
käytä Illuminate \ Support \ Facades \ Schema;
class CreateJobsTable laajentaa siirtymistä

/ **
* Suorita siirrot.
*
* @return void
* /
julkinen toiminto ylös ()

Schema :: create ('työpaikat', function (Blueprint $ taulukko)
$ table-> bigIncrements ('id');
$ taulukko-> merkkijono (jono) -> hakemisto ();
$ table-> longText ('hyötykuorma');
$ table-> unsignedTinyInteger ('yritykset');
$ table-> unsignedInteger ('varattu_at') -> nullable ();
$ table-> unsignedInteger ('käytettävissä oleva_at');
$ table-> unsignedInteger ('luotu_at');
);

/ **
* Käänteinen siirtyminen.
*
* @return void
* /
julkinen tehtävä alas ()

Malli :: dropIfExists ('työpaikat');

Suorita seuraava komento päätelaitteesta luodaksesi Job pöytä.

$ php-käsityöläinen siirtyy

Luo postiluokka

Sinun on luotava postitettava luokka, jotta voit lähettää sähköposteja Laravel-sovelluksesta. Luo nimetty postiluokka suorittamalla seuraava komento Lähettää sähköpostia sijainnissa sovellus / sähköposti.

$ php käsityöläinen merkki: mail SendEmail

Tämän luokan sisältö on esitetty alla. Näkymän tiedostonimi, jota käytetään rakentaa() menetelmä luodaan tämän opetusohjelman seuraavassa osassa.

nimitila App \ Mail;
käytä Illuminate \ Bus \ Queueable;
käytä Illuminate \ Contracts \ Queue \ ShouldQueue;
käytä Illuminate \ Mail \ Mailable;
käytä Illuminate \ Queue \ SerializesModels;
luokka SendEmail laajentaa Mailable

käytä Queueable, SerializesModels;
/ **
* Luo uusi viesti-ilmentymä.
*
* @return void
* /
julkinen toiminto __construct ()

//

/ **
* Rakenna viesti.
*
* @return $ tämä
* /
julkisen toiminnan rakentaminen ()

/ * Määritä näkymän nimi, jota käytetään sähköpostimallissa * /
palauta $ this-> -näkymä ('sähköposti');

Luo näkymä

Luo nimetty näkymätiedosto sähköposti.terä.php seuraavan sisällön kanssa, joka lähetetään sähköpostin tekstiosana.

Tervetuloa Linux-vihjeeseen


Opi Laravel helposti

Luo työpaikkaluokka

Luo työluokka suorittamalla seuraava komento. Työluokan tiedostonimi on nimetty Lähetetään sähköpostia.php luodaan sijaintiin sovellus / työpaikat.

$ php käsityöläinen merkki: työ LähetetäänSähköposti

Sisältö Lähetetään sähköpostia.php näkyy alla. Sinun on määritettävä kelvollinen sähköpostiosoite - () menetelmä kahva() toiminto testata, toimiiko koodi oikein. Aseta kelvollinen sähköpostiosoite osoitteen tilalle 'Vastaanottajan sähköpostiosoite' sisällä - () menetelmä tarkistaa, toimiiko jono kunnolla.

nimitila App \ Jobs;
käytä Illuminate \ Bus \ Queueable;
käytä Illuminate \ Contracts \ Queue \ ShouldQueue;
käytä Illuminate \ Foundation \ Bus \ Dispatchable;
käytä Illuminate \ Queue \ InteractsWithQueue;
käytä Illuminate \ Queue \ SerializesModels;
/ * Lisäsi tarvittavat paketit * /
käyttää Mailia;
käytä App \ Mail \ SendEmail;
luokka SendingEmail toteuttaa ShouldQueuen

käytä Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Luo uusi työilmentymä.
*
* @return void
* /
julkinen toiminto __construct ()

//

/ **
* Suorita työ.
*
* @return void
* /
julkisten toimintojen kahva ()

/ * Luo postitettavan luokan objekti ja lähetä sähköpostia * /
$ email = uusi SendEmail ();
/ * Aseta kelvollinen sähköpostiosoite * /
Mail :: to ('Vastaanottajan sähköpostiosoite') -> send ($ email);

Luo ohjain

Suorita seuraava komento luoda ohjain jonon käsittelemiseksi. Kun kahvaJono () Ohjaimen toiminto suoritetaan, jonotyö työnnetään ja sähköposti lähetetään.

$ php käsityöläinen merkki: ohjain SendEmailController

SendEmailController.php

nimitila App \ Http \ Controllers;
käytä Illuminate \ Http \ Request;
/ * Lisää tarvittavat paketit * /
käytä App \ Jobs \ SendingEmail;
käytä hiiltä \ hiiltä;
luokan SendEmailController laajentaa ohjainta

/ **
* Laravel-jonojen käyttäminen
* /
julkisten toimintojen kahvaJono ()

/ * Työnnä uusi työ työjonoon * /
lähetys (uusi SendingEmail ());
/ * Tulosta viesti sähköpostin lähettämisen jälkeen * /
kaiku 'Sähköposti on lähetetty';

Lisää reitti

Avaa verkko.php tiedosto reittejä -kansio ja lisää seuraava reitti suorittaaksesi jonotyön ohjaimella.

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

Suorita seuraava URL-osoite selaimessa tarkistaaksesi, toimiiko koodi. Avaa vastaanottajan sähköpostiosoite tarkistaaksesi, onko uusi sähköposti vastaanotettu.

http: // localhost: 8000 / emailqueue

Lisää viive

Avaa Lähetetään sähköpostia.php tiedosto uudelleen ja muokkaa kahvaJono () toiminto lisätä viiden sekunnin viive jonotöihin.

nimitila App \ Http \ Controllers;
käytä Illuminate \ Http \ Request;
/ * Lisää tarvittavat paketit * /
käytä App \ Jobs \ SendingEmail;
käytä hiiltä \ hiiltä;
luokan SendEmailController laajentaa ohjainta

/ **
* Laravel-jonojen käyttäminen
* /
julkisten toimintojen kahvaJono ()

/ * Luo uusi jono-objekti viiden sekunnin viiveellä * /
$ emailJob = (uusi SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Työnnä uusi työ työjonoon * /
lähetys ($ emailJob);
/ * Tulosta viesti sähköpostin lähettämisen jälkeen * /
kaiku 'Sähköposti lähetetty viiden sekunnin kuluttua';

Suorita seuraava URL-osoite selaimessa uudelleen tarkistaaksesi, toimiiko koodi. Tällöin sähköposti lähetetään viiden sekunnin kuluttua käyttäen viiden sekunnin delay () -menetelmää.

http: // localhost: 8000 / emailqueue

Tarkista vastaanottajan sähköpostiosoitteen postilaatikosta, onko uusi sähköposti vastaanotettu 5 sekunnin kuluttua. Seuraavan sisällön sisältävä sähköposti vastaanotetaan, jos jonotyö toimii oikein.

Johtopäätös

Tämä opetusohjelma näyttää hyvin yksinkertaisen Laravel-jonon käytön. Voit käyttää Laravel-jonoja erilaisiin tarkoituksiin sovelluksesi vaatimusten perusteella. Toivon, että tämä opetusohjelma on auttanut lukijoita ymmärtämään paremmin Laravel-jonojen peruskäsitteet.

Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...