Eeldused
Enne selle õpetuse alustamist täitke kõigepealt järgmised toimingud
- Paigaldage värske Laraveli projekt
- Looge andmebaasiühendus
- 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: tabelMigratsioonifaili 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ändavadLoo 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 SendEmailSelle 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öö SendingEmailProgrammi 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 SendEmailControllerSendEmailController.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.