ларавел

Водич за редове Ларавел

Водич за редове Ларавел
Ред за Ларавел је једна од кориснијих карактеристика Ларавел оквира. Ова функција се користи за чекање на дуготрајне задатке и извршавање задатака касније да би се побољшале перформансе и ефикасност апликације Ларавел. Ова функција пружа различите типове редова у позадинским крајевима, као што су Амазон СКС, Редис, Беансталк, синхрони управљачки програм или релациона база података. Погонитељ нултог реда користи се за одбацивање послова у реду. Датотека за конфигурацију реда се чува на локацији цонфиг / куеуе.пхп. Уобичајени пример коришћења Ларавел реда је слање е-поште. Када је потребно да се ради са великим бројем е-адреса у апликацији Ларавал, онда је боље користити редове Ларавел да бисте убрзали обраду. Овај водич приказује како користити Ларавел редове за слање великог броја е-порука.

Предуслови

Пре почетка овог водича, прво извршите следеће задатке:

  1. Инсталирајте нови Ларавел пројекат
  2. Подесите везу са базом података
  3. Подесите конфигурацију за слање е-поште (Водич за слање е-поште можете проверити за слање е-поште путем СМТП-а)

Направи табелу

Морате створити послови табела у бази података за чување свих редова. Покрените следећу наредбу са терминала да бисте креирали датотеку за миграцију за послови сто.

$ пхп занатски ред: табела

Датотеку за миграцију можете отворити са локације база података / миграције /. Датотека садржи следећи садржај.

користите Иллуминате \ Датабасе \ Мигратионс \ Мигратион;
користите Иллуминате \ Датабасе \ Сцхема \ Блуепринт;
користите Иллуминате \ Суппорт \ Фацадес \ Сцхема;
класа ЦреатеЈобсТабле проширује Миграцију

/ **
* Покрените миграције.
*
* @ повратак воид
* /
јавна функција горе ()

Шема :: цреате ('јобс', фунцтион (Блуепринт $ табле)
$ табле-> бигИнцрементс ('ид');
$ табле-> стринг ('куеуе') -> индек ();
$ табле-> лонгТект ('корисни терет');
$ табле-> унсигнедТиниИнтегер ('покушаји');
$ табле-> унсигнедИнтегер ('ресерве_ат') -> нуллабле ();
$ табле-> унсигнедИнтегер ('аваилабле_ат');
$ табле-> унсигнедИнтегер ('цреатед_ат');
);

/ **
* Обрнути миграције.
*
* @ повратак празан
* /
јавна функција доле ()

Сцхема :: дропИфЕкистс ('послови');

Покрените следећу команду са терминала да бисте креирали посао сто.

$ пхп занатлија мигрира

Направите класу поште

Морате створити доступну класу да бисте слали е-пошту из апликације Ларавел. Покрените следећу наредбу да бисте креирали класу поште са именом Шаљи имејл на локацији апп / Маил.

$ пхп артисан маке: маил СендЕмаил

Садржај ове класе је приказан у наставку. Назив датотеке приказа који се користи у буилд () метода ће бити створена у следећем делу овог водича.

именски простор Апп \ Маил;
користите Иллуминате \ Бус \ Куеуеабле;
користите Иллуминате \ Цонтрацтс \ Куеуе \ СхоулдКуеуе;
користите Иллуминате \ Маил \ Мавабле;
користите Иллуминате \ Куеуе \ СериализесМоделс;
класа СендЕмаил проширује Маибле

користити Куеуеабле, СериализесМоделс;
/ **
* Направите нову инстанцу поруке.
*
* @ повратак празан
* /
јавна функција __цонструцт ()

//

/ **
* Направите поруку.
*
* @врати $ ово
* /
буилд јавне функције ()

/ * Дефинишите назив приказа који ће се користити за образац е-поште * /
врати $ тхис-> виев ('емаил');

Цреате Виев

Направите датотеку приказа са именом е-маил.сечиво.пхп са следећим садржајем који ће бити послат као тело е-поште.

Добродошли у Линук Хинт


Ларавел научите лако

Направите класу посла

Покрените следећу наредбу да бисте креирали класу посла. Име датотеке класе посла именовано СендингЕмаил.пхп биће створене на локацији апликација / послови.

$ пхп артисан маке: јоб СендингЕмаил

Садржај СендингЕмаил.пхп приказано је доле. Морате поставити важећу адресу е-поште унутар до() метода хандле () функција за тестирање да ли код ради исправно. Поставите важећу адресу е-поште уместо 'Адреса е-поште пријемника' унутар до() метода за проверу да ли ред ради исправно.

именски простор Апп \ Јобс;
користите Иллуминате \ Бус \ Куеуеабле;
користите Иллуминате \ Цонтрацтс \ Куеуе \ СхоулдКуеуе;
користите Иллуминате \ Фоундатион \ Бус \ Диспатцхабле;
користите Иллуминате \ Куеуе \ ИнтерацтсВитхКуеуе;
користите Иллуминате \ Куеуе \ СериализесМоделс;
/ * Додати потребни пакети * /
користити пошту;
користите Апп \ Маил \ СендЕмаил;
класа СендингЕмаил имплементира СхоулдКуеуе

користите Диспатцхабле, ИнтерацтсВитхКуеуе, Куеуеабле, СериализесМоделс;
/ **
* Направите нову инстанцу посла.
*
* @ повратак воид
* /
јавна функција __цонструцт ()

//

/ **
* Извршите посао.
*
* @ повратак воид
* /
ручица јавне функције ()

/ * Направите објекат доступне класе и пошаљите е-пошту * /
$ емаил = нови СендЕмаил ();
/ * Подесите важећу адресу е-поште * /
Маил :: на ('Адреса е-поште примаоца') -> пошаљи ($ емаил);

Направите контролер

Покрените следећу наредбу да бисте креирали контролер за управљање редом. Када хандлеКуеуе () извршава се функција контролера, задатак реда ће се гурнути и е-пошта ће се послати.

$ пхп артисан маке: контролер СендЕмаилЦонтроллер

СендЕмаилЦонтроллер.пхп

простор имена Апп \ Хттп \ Цонтроллерс;
користите Иллуминате \ Хттп \ Рекуест;
/ * Додајте потребне пакете * /
користите Апп \ Јобс \ СендингЕмаил;
користите Царбон \ Царбон;
класа СендЕмаилЦонтроллер проширује Цонтроллер

/ **
* Коришћење редова Ларавел
* /
јавна функција хандлеКуеуе ()

/ * Притисните нови посао у реду послова * /
отпрема (нова СендингЕмаил ());
/ * Штампање поруке након слања е-поште * /
ецхо 'Е-пошта је послата';

Додај руту

Отвори веб.пхп датотека из руте директоријум и додајте следећу руту за извршавање задатка у реду помоћу контролера.

Роуте :: гет ('емаил', '[емаил протецтед]');

Покрените следећу УРЛ адресу у прегледачу да бисте проверили да ли код ради. Отворите адресу е-поште примаоца да бисте проверили да ли је примљена нова е-пошта.

хттп: // лоцалхост: 8000 / емаилкуеуе

Додај одлагање

Отвори СендингЕмаил.пхп поново датотеку и измените садржај датотеке хандлеКуеуе () функција за додавање кашњења од пет секунди задацима у реду.

простор имена Апп \ Хттп \ Цонтроллерс;
користите Иллуминате \ Хттп \ Рекуест;
/ * Додајте потребне пакете * /
користите Апп \ Јобс \ СендингЕмаил;
користите Царбон \ Царбон;
класа СендЕмаилЦонтроллер проширује Цонтроллер

/ **
* Коришћење редова Ларавел
* /
јавна функција хандлеКуеуе ()

/ * Направите нови објекат у реду са закашњењем од 5 секунди * /
$ емаилЈоб = (нев СендингЕмаил ()) -> делаи (Царбон :: нов () -> аддСецондс (5));
/ * Притисните нови посао у реду послова * /
отпрема ($ емаилЈоб);
/ * Штампање поруке након слања е-поште * /
ецхо 'Е-пошта послата након пет секунди';

Поново покрените следећу УРЛ адресу у прегледачу да бисте проверили да ли код ради. Овде ће се е-пошта послати након пет секунди, користећи методу делаи () од пет секунди.

хттп: // лоцалхост: 8000 / емаилкуеуе

Проверите пријемно сандуче адресе е-поште примаоца да бисте сазнали да ли је нова е-пошта примљена након 5 секунди. Е-маил са следећим садржајем ће бити примљен ако посао у реду ради исправно.

Закључак

Овај водич приказује врло једноставно коришћење реда Ларавел. Ларавел редове можете користити у различите сврхе, на основу захтева ваше апликације. Надам се да је овај водич помогао читаоцима да боље разумеју основне концепте Ларавел редова.

Најбоље игре командне линије за Линук
Командна линија није само ваш највећи савезник када користите Линук - она ​​такође може бити извор забаве јер је можете користити за играње многих заб...
Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...
Корисни алати за Линук играче
Ако волите да играте игре на Линуку, велика је вероватноћа да сте можда користили апликације и услужне програме попут Вине, Лутрис и ОБС Студио за поб...