laravel

Урок за опашки на Laravel

Урок за опашки на Laravel
Опашката за Laravel е една от най-полезните функции на рамката на Laravel. Тази функция се използва за изчакване на отнемащи време задачи и изпълнение на задачи по-късно, за да се подобри производителността и ефективността на приложението Laravel. Тази функция осигурява различни видове опашки в back-end, като Amazon SQS, Redis, Beanstalk, синхронен драйвер или релационна база данни. Драйвер за нулева опашка се използва за отхвърляне на задания на опашка. Конфигурационният файл на опашката се съхранява в местоположението конфиг / опашка.php. Често срещан пример за използване на опашката Laravel е изпращането на имейли. Когато се изисква да се справите с голям брой имейли в приложението Laraval, тогава е по-добре да използвате опашки Laravel, за да ускорите обработката. Този урок показва как да използвате опашките Laravel за изпращане на голям брой имейли.

Предпоставки

Преди да започнете този урок, първо изпълнете следните задачи:

  1. Инсталирайте нов проект на Laravel
  2. Настройте връзката с базата данни
  3. Настройте конфигурацията за изпращане на имейли (Можете да проверите урока за изпращане на имейли за изпращане на имейл чрез SMTP)

Създаване на таблица

Трябва да създадете работни места таблица в базата данни за съхраняване на всички опашки. Изпълнете следната команда от терминала, за да създадете миграционен файл за работни места маса.

$ php занаятчийска опашка: таблица

Можете да отворите файла за миграция от местоположението база данни / миграции /. Файлът съдържа следното съдържание.

използвайте Illuminate \ Database \ Migrations \ Migration;
използвайте Illuminate \ Database \ Schema \ Blueprint;
използвайте Illuminate \ Support \ Facades \ Schema;
клас CreateJobsTable разширява миграцията

/ **
* Стартирайте миграциите.
*
* @return void
* /
публична функция нагоре ()

Schema :: create ('jobs', function (Blueprint $ table)
$ table-> bigIncrements ('id');
$ table-> string ('queue') -> index ();
$ table-> longText ('полезен товар');
$ table-> unsignedTinyInteger ('опити');
$ table-> unsignedInteger ('reserve_at') -> nullable ();
$ table-> unsignedInteger ('available_at');
$ table-> unsignedInteger ('created_at');
);

/ **
* Обратни миграции.
*
* @return void
* /
публична функция надолу ()

Schema :: dropIfExists ('работни места');

Изпълнете следната команда от терминала, за да създадете работа маса.

$ php занаятчия мигрира

Създаване на пощенски клас

Трябва да създадете наличен клас, за да изпращате имейли от приложението Laravel. Изпълнете следната команда, за да създадете имейл клас с име Изпратете имейл в местоположението приложение / поща.

$ php artisan make: поща SendEmail

Съдържанието на този клас е показано по-долу. Името на изгледа на файла, което се използва в изграждане () метод ще бъде създаден в следващата част на този урок.

пространство от имена App \ Mail;
използвайте Illuminate \ Bus \ Queueable;
използвайте Illuminate \ Contracts \ Queue \ ShouldQueue;
използвайте Illuminate \ Mail \ Mailable;
използвайте Illuminate \ Queue \ SerializesModels;
клас SendEmail разширява Достъпен

използвайте Queueable, SerializesModels;
/ **
* Създайте нов екземпляр на съобщение.
*
* @return void
* /
публична функция __construct ()

//

/ **
* Изградете съобщението.
*
* @ върни $ това
* /
изграждане на публична функция ()

/ * Определете името на изгледа, който ще се използва за шаблон за имейл * /
върнете $ this-> view ('имейл');

Създаване на изглед

Създайте файла с име на име електронна поща.острие.php със следното съдържание, което ще бъде изпратено като тяло на имейла.

Добре дошли в Linux Hint


Научете Laravel лесно

Създайте клас на работа

Изпълнете следната команда, за да създадете клас на работа. Името на файла на клас на работа Изпращане на имейл.php ще бъде създадено в местоположението приложение / работни места.

$ php artisan make: job SendingEmail

Съдържанието на Изпращане на имейл.php е показано по-долу. Трябва да зададете валиден имейл адрес в да се() метод на дръжка () функция за проверка дали кодът работи правилно. Задайте валиден имейл адрес вместо „Адрес на имейл адреса на получателя“ вътре в да се() метод за проверка дали опашката работи правилно.

пространство от имена App \ Jobs;
използвайте Illuminate \ Bus \ Queueable;
използвайте Illuminate \ Contracts \ Queue \ ShouldQueue;
използвайте Illuminate \ Foundation \ Bus \ Dispatchable;
използвайте Illuminate \ Queue \ InteractsWithQueue;
използвайте Illuminate \ Queue \ SerializesModels;
/ * Добавени са необходимите пакети * /
използвайте поща;
използвайте App \ Mail \ SendEmail;
клас SendingEmail изпълнява ShouldQueue

използвайте Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/ **
* Създайте нов екземпляр на работа.
*
* @return void
* /
публична функция __construct ()

//

/ **
* Изпълнете задачата.
*
* @return void
* /
манипулатор на публична функция ()

/ * Създайте обекта на достъпния клас и изпратете имейл * /
$ имейл = нов SendEmail ();
/ * Задайте валиден имейл адрес * /
Mail :: to ('Receiver Email Address') -> изпращане ($ имейл);

Създаване на контролер

Изпълнете следната команда, за да създадете контролер за обработка на опашката. Когато handleQueue () функцията на контролера се изпълнява, заданието за опашката ще бъде изтласкано и имейлът ще бъде изпратен.

$ php artisan make: контролер SendEmailController

SendEmailController.php

пространство от имена App \ Http \ Controllers;
използвайте Illuminate \ Http \ Request;
/ * Добавете необходимите пакети * /
използвайте App \ Jobs \ SendingEmail;
използвайте Carbon \ Carbon;
клас SendEmailController разширява Controller

/ **
* Използване на опашки Laravel
* /
публична функция handleQueue ()

/ * Натиснете новата работа в опашката * /
изпращане (нов SendingEmail ());
/ * Печат на съобщение след изпращане на имейл * /
echo „Имейлът е изпратен“;

Добавяне на маршрут

Отвори уеб.php файл от маршрути папка и добавете следния маршрут, за да изпълните задачата на опашката с помощта на контролера.

Route :: get ('имейл', '[имейл защитен]');

Изпълнете следния URL в браузъра, за да проверите дали кодът работи. Отворете имейл адреса на получателя, за да проверите дали е получен нов имейл.

http: // localhost: 8000 / emailqueue

Добавяне на забавяне

Отвори Изпращане на имейл.php файл отново и промяна на съдържанието на handleQueue () функция за добавяне на пет секундно закъснение към задачите на опашката.

пространство от имена App \ Http \ Controllers;
използвайте Illuminate \ Http \ Request;
/ * Добавете необходимите пакети * /
използвайте App \ Jobs \ SendingEmail;
използвайте Carbon \ Carbon;
клас SendEmailController разширява Controller

/ **
* Използване на опашки Laravel
* /
публична функция handleQueue ()

/ * Създайте нов обект на опашка с 5 секунди закъснение * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Натиснете новата работа в опашката * /
изпращане ($ emailJob);
/ * Печат на съобщение след изпращане на имейл * /
echo 'Имейл изпратен след пет секунди';

Отново стартирайте следния URL в браузъра, за да проверите дали кодът работи. Тук имейлът ще бъде изпратен след пет секунди, като се използва методът delay () от пет секунди.

http: // localhost: 8000 / emailqueue

Проверете входящата поща на имейл адреса на получателя, за да разберете дали е получен нов имейл след 5 секунди. Ще получите имейл със следното съдържание, ако работата на опашката работи правилно.

Заключение

Този урок показва много просто използване на опашката Laravel. Можете да използвате опашките Laravel за различни цели въз основа на вашите изисквания за кандидатстване. Надявам се, че този урок е помогнал на читателите да разберат по-добре основните концепции на опашките в Laravel.

Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...
Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...
Как да изтеглите и пуснете Civilization VI на Сид Майер на Linux
Въведение в играта Civilization 6 е модерен поглед върху класическата концепция, въведена в поредицата от игрите Age of Empires. Идеята беше доста про...