laravel

Laraveli järjekordade õpetus

Laraveli järjekordade õpetus
Laraveli järjekord on üks Laraveli raamistiku kasulikumaid omadusi. Seda funktsiooni kasutatakse aeganõudvate ülesannete ootamiseks ja ülesannete hilisemaks täitmiseks, et parandada Laraveli rakenduse jõudlust ja tõhusust. See funktsioon pakub tagatippe erinevat tüüpi järjekordi, näiteks Amazon SQS, Redis, Beanstalk, sünkroonidraiver või relatsiooniandmebaas. Järjekorras olevate tööde tühistamiseks kasutatakse nulljärjekorra draiverit. Järjekorra konfiguratsioonifail salvestatakse asukohta konfigureerimine / järjekord.php. Levinud näide Laraveli järjekorra kasutamisest on meilide saatmine. Kui Laravali rakenduses on vaja tegeleda suure hulga meilidega, on töötlemise kiirendamiseks parem kasutada Laraveli järjekordi. See õpetus näitab, kuidas kasutada Laraveli järjekordi suure hulga meilide saatmiseks.

Eeldused

Enne selle õpetuse alustamist täitke kõigepealt järgmised toimingud

  1. Paigaldage värske Laraveli projekt
  2. Looge andmebaasiühendus
  3. Seadistage e-kirjade saatmise konfiguratsioon (meilisõnumite saatmise juhendit saate kontrollida SMTP abil)

Loo tabel

Peate looma töökohti tabelis andmebaasi kõigi järjekordade salvestamiseks. Käivitage terminalilt järgmine käsk, et luua failile töökohti tabel.

$ php käsitööliste järjekord: tabel

Migratsioonifaili saate avada asukohast andmebaas / migratsioonid /. Fail sisaldab järgmist sisu.

kasuta Illuminate \ Database \ Migrations \ Migration;
kasutage Illuminate \ Database \ Schema \ Blueprint;
kasutage Illuminate \ Support \ Facades \ Schema;
klass CreateJobsTable laiendab rännet

/ **
* Käivitage migratsioonid.
*
* @return tühine
* /
avalik funktsioon üles ()

Skeem :: create ('töökohad', function (tabel Blueprint $)
$ table-> bigIncrements ('id');
$ tabel-> string ('järjekord') -> register ();
$ table-> longText ('kasulik koormus');
$ table-> unsignedTinyInteger ('katsed');
$ table-> unsignedInteger ('reserve_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('loodud_at');
);

/ **
* Pange ränded tagasi.
*
* @return tühine
* /
avalik funktsioon alla ()

Skeem :: dropIfExists ('töökohad');

Käivitage terminalist järgmine käsk töö tabel.

$ php käsitöölised rändavad

Loo meilikursus

Laraveli rakendusest meilide saatmiseks peate looma postitatava klassi. Nimega postiklassi loomiseks käivitage järgmine käsk Saada email asukohas rakendus / Mail.

$ php käsitöölise mark: mail SendEmail

Selle klassi sisu on näidatud allpool. Vaates failinimi, mida kasutatakse ehitama () meetod luuakse selle õpetuse järgmises osas.

nimeruum App \ Mail;
kasutage Illuminate \ Bus \ Queueable;
kasuta Illuminate \ Contracts \ Queue \ ShouldQueue;
kasuta Illuminate \ Mail \ Mailable;
kasutage Illuminate \ Queue \ SerializesModels;
klass SendEmail laiendab Mailable'i

kasutage Queueable, SerializesModels;
/ **
* Looge uus sõnumi eksemplar.
*
* @return tühine
* /
avalik funktsioon __construct ()

//

/ **
* Koostage sõnum.
*
* @return $ see
* /
avaliku funktsiooni ülesehitamine ()

/ * Määrake vaate nimi, mida kasutatakse e-posti malli jaoks * /
tagastage vaade $ this-> (e-post);

Loo vaade

Looge nimega vaatefail e-post.tera.php järgmise sisuga, mis saadetakse e-posti kehana.

Tere tulemast Linuxi vihjesse


Õppige Laraveli lihtsalt

Looge töökoht

Tööklassi loomiseks käivitage järgmine käsk. Tööklassi failinimi on nimetatud E-posti saatmine.php luuakse asukohas rakendus / töökohad.

$ php käsitöölise mark: töö SendingEmail

Programmi sisu E-posti saatmine.php on näidatud allpool. Peate seadistama kehtiva e-posti aadressi kuni () meetod käepide () funktsioon, et testida, kas kood töötab korralikult. Määrake domeeni asemel kehtiv e-posti aadress 'Saaja e-posti aadress' sees kuni () meetod, et kontrollida, kas järjekord töötab korralikult.

nimeruum App \ Jobs;
kasutage Illuminate \ Bus \ Queueable;
kasuta Illuminate \ Contracts \ Queue \ ShouldQueue;
kasutage Illuminate \ Foundation \ Bus \ Dispatchable;
kasuta Illuminate \ Queue \ InteractsWithQueue;
kasuta Illuminate \ Queue \ SerializesModels;
/ * Lisas vajalikud paketid * /
kasutada Maili;
kasutage rakendust \ Mail \ SendEmail;
klass SendingEmail rakendab ShouldQueue

kasutage Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Looge uus töökoht.
*
* @return tühine
* /
avalik funktsioon __construct ()

//

/ **
* Tehke töö.
*
* @return tühine
* /
avaliku funktsiooni käepide ()

/ * Loo postitava klassi objekt ja saada meil *
$ email = uus SendEmail ();
/ * Määrake kehtiv e-posti aadress * /
Mail :: to ('Vastuvõtja e-posti aadress') -> send ($ email);

Loo kontroller

Järjekorra haldamiseks kontrolleri loomiseks käivitage järgmine käsk. Kui handleQueue () kontrolleri funktsioon täidetakse, järjekorratöö lükatakse edasi ja meil saadetakse.

$ php käsitööline mark: kontroller SendEmailController

SendEmailController.php

nimeruum App \ Http \ Controllers;
kasuta Illuminate \ Http \ Request;
/ * Lisage vajalikud paketid * /
kasutage rakendust \ Jobs \ SendingEmail;
kasuta Carbon \ Carbon;
klass SendEmailController laiendab kontrollerit

/ **
* Laraveli järjekordade kasutamine
* /
avaliku funktsiooni handQueue ()

/ * Lükake uus töö tööjärjekorda * /
lähetamine (uus SendingEmail ());
/ * Prindi sõnum pärast e-kirja saatmist * /
kaja 'E-post on saadetud';

Lisa marsruut

Ava võrk.php fail failist marsruutidel kausta ja lisage järgmine marsruut juhtimistöö käivitamiseks kontrolleri abil.

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

Käivitage brauseris järgmine URL, et kontrollida, kas kood töötab. Avage vastuvõtja e-posti aadress, et kontrollida, kas uus e-kiri on vastu võetud.

http: // localhost: 8000 / emailqueue

Lisa viivitus

Ava E-posti saatmine.php fail uuesti ja muutke handleQueue () funktsioon viiesekundilise viivituse lisamiseks järjekorra töödele.

nimeruum App \ Http \ Controllers;
kasuta Illuminate \ Http \ Request;
/ * Lisage vajalikud paketid * /
kasuta rakendust \ Jobs \ SendingEmail;
kasuta Carbon \ Carbon;
klass SendEmailController laiendab kontrollerit

/ **
* Laraveli järjekordade kasutamine
* /
avaliku funktsiooni handleQueue ()

/ * Loo uus järjekorraobjekt 5-sekundilise viivitusega * /
$ emailJob = (uus SendingEmail ()) -> viivitus (Carbon :: now () -> addSeconds (5));
/ * Lükake uus töö tööjärjekorda * /
lähetamine ($ emailJob);
/ * Prindi sõnum pärast e-kirja saatmist * /
kaja 'E-post saadetud viie sekundi pärast';

Jällegi käivitage brauseris järgmine URL, et kontrollida, kas kood töötab. Siin saadetakse meil viie sekundi pärast, kasutades viie sekundi meetodit delay ().

http: // localhost: 8000 / emailqueue

Kontrollige vastuvõtja e-posti aadressi postkasti, et teada saada, kas 5 sekundi pärast on uus meil saadetud. Kui järjekorratöö töötab korralikult, saadetakse järgmise sisuga meil.

Järeldus

See õpetus näitab Laraveli järjekorra väga lihtsat kasutamist. Laraveli järjekordi saate kasutada erinevatel eesmärkidel, lähtudes teie rakenduse nõuetest. Loodan, et see õpetus on aidanud lugejatel paremini mõista Laraveli järjekordade põhimõisteid.

Microsoft Sculpt Touch juhtmeta hiirte ülevaade
Lugesin hiljuti Microsoft Sculpt Touch juhtmevaba hiir ja otsustas selle osta. Pärast mõnda aega kasutamist otsustasin jagada sellega oma kogemusi. Se...
Rakenduse AppyMouse ekraanipaneel ja hiirekursor Windowsi tahvelarvutitele
Tahvelarvutite kasutajad tunnevad hiirekursorit sageli puudust, eriti kui neil on kombeks sülearvuteid kasutada. Puutetundliku ekraaniga nutitelefonid...
Hiire keskmine nupp ei tööta Windows 10-s
The hiire keskmine nupp aitab teil sirvida pikki rohke andmega veebisaite ja ekraane. Kui see peatub, siis lõpuks kasutate kerimiseks klaviatuuri, mis...