laravel

Laravel Queues apmācība

Laravel Queues apmācība
Laravel rinda ir viena no noderīgākajām Laravel ietvara funkcijām. Šī funkcija tiek izmantota, lai gaidītu laikietilpīgus uzdevumus un vēlāk veiktu uzdevumus, lai uzlabotu Laravel lietojumprogrammas veiktspēju un efektivitāti. Šī funkcija nodrošina dažāda veida rindas aizmugurēs, piemēram, Amazon SQS, Redis, Beanstalk, sinhronais draiveris vai relāciju datu bāze. Null rindas draiveris tiek izmantots, lai izmestu rindā esošos darbus. Rindas konfigurācijas fails tiek saglabāts atrašanās vietā config / rinda.php. Izplatīts Laravel rindas izmantošanas piemērs ir e-pasta ziņojumu sūtīšana. Ja Laraval lietojumprogrammā ir jārisina liels skaits e-pastu, apstrādes paātrināšanai labāk izmantot Laravel rindas. Šajā apmācībā ir parādīts, kā izmantot Laravel rindas, lai nosūtītu lielu skaitu e-pasta ziņojumu.

Priekšnoteikumi

Pirms sākat šo apmācību, vispirms veiciet šādus uzdevumus:

  1. Instalējiet jaunu Laravel projektu
  2. Izveidojiet datu bāzes savienojumu
  3. Iestatiet e-pasta ziņojumu sūtīšanas konfigurāciju (varat pārbaudīt e-pasta sūtīšanas apmācību, lai nosūtītu e-pastu, izmantojot SMTP)

Izveidot tabulu

Jums ir jāizveido darbavietas tabula datu bāzē, lai saglabātu visas rindas. Izveidojiet šādu komandu no termināļa, lai izveidotu migrācijas failu darbavietas tabula.

$ php amatnieku rinda: tabula

Jūs varat atvērt migrācijas failu no atrašanās vietas datu bāze / migrācijas /. Failā ir šāds saturs.

izmantojiet Illuminate \ Database \ Migrations \ Migration;
izmantojiet Illuminate \ Database \ Schema \ Blueprint;
izmantojiet Illuminate \ Support \ Facades \ Schema;
klase CreateJobsTable paplašina migrāciju

/ **
* Palaidiet migrācijas.
*
* @return void
* /
publiska funkcija uz augšu ()

Shēma :: izveidot ('darba vietas', funkcija (Blueprint $ tabula)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('lietderīgā slodze');
$ table-> unsignedTinyInteger ('mēģinājumi');
$ table-> unsignedInteger ('reserve_at') -> nullable ();
$ table-> unsignedInteger ('pieejams_at');
$ table-> unsignedInteger ('izveidots_at');
);

/ **
* Apgrieziet migrācijas otrādi.
*
* @return void
* /
publiska funkcija uz leju ()

Shēma :: dropIfExists ('darbavietas');

Palaidiet šādu komandu no termināla, lai izveidotu darbs tabula.

$ php amatnieki migrē

Izveidot pasta klasi

Lai nosūtītu e-pastus no Laravel lietojumprogrammas, jums jāizveido pa pastu, kuru var nosūtīt. Palaidiet šo komandu, lai izveidotu nosaukto pasta klasi Sūtīt e-pastu atrašanās vietā lietotne / pasts.

$ php amatnieka marka: pasts SendEmail

Šīs klases saturs ir parādīts zemāk. Skata faila nosaukums, kas tiek izmantots būvēt() metode tiks izveidota šīs apmācības nākamajā daļā.

nosaukumvieta App \ Mail;
izmantojiet Illuminate \ Bus \ Queueable;
izmantojiet Illuminate \ Contracts \ Queue \ ShouldQueue;
izmantojiet Illuminate \ Mail \ Mailable;
izmantojiet Illuminate \ Queue \ SerializesModels;
klases SendEmail paplašina Mailable

izmantot Queueable, SerializesModels;
/ **
* Izveidojiet jaunu ziņojumu instanci.
*
* @return void
* /
publiskā funkcija __construct ()

//

/ **
* Izveidojiet ziņojumu.
*
* @return $ šo
* /
publisko funkciju veidošana ()

/ * Definējiet skata nosaukumu, kas tiks izmantots e-pasta veidnei * /
atgriezt $ this-> skatu ('e-pasts');

Izveidot skatu

Izveidojiet skata failu ar nosaukumu e-pasts.asmens.php ar šādu saturu, kas tiks nosūtīts kā e-pasta pamatteksts.

Laipni lūdzam Linux padomā


Uzziniet Laravel viegli

Izveidojiet darba klasi

Palaidiet šo komandu, lai izveidotu darba klasi. Nosaukts amata klases faila nosaukums Sūta e-pastu.php tiks izveidots vietā lietotne / darbs.

$ php amatnieka marka: darbs SūtotE pasts

Programmas saturs Sūta e-pastu.php ir parādīts zemāk. Jums iekšpusē ir jāiestata derīga e-pasta adrese līdz () metode rokturis () funkciju, lai pārbaudītu, vai kods darbojas pareizi. Vietnes vietā iestatiet derīgu e-pasta adresi “Saņēmēja e-pasta adrese” iekšpusē līdz () metodi, lai pārbaudītu, vai rinda darbojas pareizi.

nosaukumvieta App \ Jobs;
izmantojiet Illuminate \ Bus \ Queueable;
izmantojiet Illuminate \ Contracts \ Queue \ ShouldQueue;
izmantot Illuminate \ Foundation \ Bus \ Dispatchable;
izmantojiet Illuminate \ Queue \ InteractsWithQueue;
izmantojiet Illuminate \ Queue \ SerializesModels;
/ * Pievienoja nepieciešamās paketes * /
izmantot Mail;
izmantot App \ Mail \ SendEmail;
klase SendingEmail ievieš ShouldQueue

izmantojiet Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Izveidojiet jaunu darba instanci.
*
* @return void
* /
publiskā funkcija __construct ()

//

/ **
* Izpildiet darbu.
*
* @return void
* /
publisko funkciju rokturis ()

/ * Izveidojiet pasta sūtīšanas klases objektu un nosūtiet e-pastu * /
$ email = new SendEmail ();
/ * Iestatiet derīgu e-pasta adresi * /
Pasts :: uz ('Saņēmēja e-pasta adrese') -> nosūtīt ($ e-pasts);

Izveidot kontrolieri

Palaidiet šo komandu, lai izveidotu kontrolieri rindas apstrādei. Kad handleQueue () tiek izpildīta kontroliera funkcija, rindas darbs tiks virzīts un e-pasts tiks nosūtīts.

$ php amatnieka marka: kontrolieris SendEmailController

SendEmailController.php

nosaukumvieta App \ Http \ Controllers;
izmantot Illuminate \ Http \ Request;
/ * Pievienojiet nepieciešamos iepakojumus * /
izmantot App \ Jobs \ SendingEmail;
izmantot Carbon \ Carbon;
klases SendEmailController paplašina kontrolieri

/ **
* Izmantojot Laravel rindas
* /
publisko funkciju handleQueue ()

/ * Ievietojiet jauno darbu darba rindā * /
nosūtīšana (jauns SendingEmail ());
/ * Drukāt ziņojumu pēc e-pasta nosūtīšanas * /
atbalss 'E-pasts ir nosūtīts';

Pievienot maršrutu

Atveriet tīmeklī.php failu no maršrutos mapi un pievienojiet šo maršrutu, lai izpildītu rindas darbu, izmantojot kontrolleri.

Maršruts :: get ('e-pasts', '[e-pasts aizsargāts]');

Palaidiet šo URL pārlūkprogrammā, lai pārbaudītu, vai kods darbojas. Atveriet saņēmēja e-pasta adresi, lai pārbaudītu, vai ir saņemts jauns e-pasts.

http: // localhost: 8000 / emailqueue

Pievienot aizkavi

Atveriet Sūta e-pastu.php failu vēlreiz un modificējiet handleQueue () funkcija, lai rindas darbiem pievienotu piecu sekunžu kavēšanos.

nosaukumvieta App \ Http \ Controllers;
izmantot Illuminate \ Http \ Request;
/ * Pievienojiet nepieciešamos iepakojumus * /
izmantot App \ Jobs \ SendingEmail;
izmantot Carbon \ Carbon;
klases SendEmailController paplašina kontrolieri

/ **
* Izmantojot Laravel rindas
* /
publisko funkciju handleQueue ()

/ * Izveidojiet jaunu rindas objektu ar 5 sekunžu kavēšanos * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Ievietojiet jauno darbu darba rindā * /
nosūtīt ($ emailJob);
/ * Drukāt ziņojumu pēc e-pasta nosūtīšanas * /
atbalss 'E-pasts nosūtīts pēc piecām sekundēm';

Atkal palaidiet šo URL pārlūkprogrammā, lai pārbaudītu, vai kods darbojas. Šeit e-pasts tiks nosūtīts pēc piecām sekundēm, izmantojot piecu sekunžu metodi delay ().

http: // localhost: 8000 / emailqueue

Pārbaudiet saņēmēja e-pasta adreses iesūtni, lai uzzinātu, vai pēc 5 sekundēm ir saņemts jauns e-pasts. Ja rindas darbs darbojas pareizi, tiks saņemts e-pasts ar šādu saturu.

Secinājums

Šī apmācība parāda ļoti vienkāršu Laravel rindas izmantošanu. Laravel rindas varat izmantot dažādiem mērķiem, pamatojoties uz lietojumprogrammas prasībām. Es ceru, ka šī apmācība ir palīdzējusi lasītājiem labāk izprast Laravel rindu pamatjēdzienus.

Labākie Linux spēļu draiveri 2021. gadā
Linux operētājsistēma ir gājusi tālu no sākotnējā, vienkāršā uz serveriem balstītā izskata. Šī operētājsistēma pēdējos gados ir ārkārtīgi uzlabojusies...
Kā tvert un straumēt spēļu sesiju operētājsistēmā Linux
Agrāk spēļu spēlēšana tika uzskatīta tikai par hobiju, taču laika gaitā spēļu industrija piedzīvoja milzīgu tehnoloģiju un spēlētāju skaita pieaugumu....
Labākās spēles, ko spēlēt ar rokas izsekošanu
Oculus Quest nesen iepazīstināja ar lielisku ideju par rokas izsekošanu bez kontrolieriem. Ar arvien lielāku spēļu un aktivitāšu skaitu, kas atbalsta ...