ларавел

Учебник по очередям Laravel

Учебник по очередям Laravel
Очередь Laravel - одна из наиболее полезных функций фреймворка Laravel. Эта функция используется для ожидания выполнения трудоемких задач и выполнения задач в более позднее время для повышения производительности и эффективности приложения Laravel. Эта функция предоставляет различные типы очередей в бэкэндах, такие как Amazon SQS, Redis, Beanstalk, синхронный драйвер или реляционная база данных. Драйвер нулевой очереди используется для отбрасывания заданий в очереди. Файл конфигурации очереди хранится в папке конфигурация / очередь.php. Типичный пример использования очереди Laravel - отправка электронных писем. Когда в приложении Laraval требуется иметь дело с большим количеством писем, тогда лучше использовать очереди Laravel для ускорения обработки. В этом руководстве показано, как использовать очереди Laravel для отправки большого количества писем.

Предпосылки

Перед тем, как начать это руководство, сначала выполните следующие задачи:

  1. Установите новый проект Laravel
  2. Настроить соединение с базой данных
  3. Настройте конфигурацию для отправки электронных писем (вы можете проверить руководство по отправке электронной почты, чтобы отправить электронное письмо с помощью SMTP)

Создать таблицу

Вы должны создать рабочие места таблица в базе данных для хранения всех очередей. Выполните следующую команду из терминала, чтобы создать файл миграции для рабочие места Таблица.

Очередь $ php artisan: таблица

Вы можете открыть файл миграции из папки база данных / миграции /. Файл содержит следующее содержимое.

используйте Illuminate \ Database \ Migrations \ Migration;
используйте Illuminate \ Database \ Schema \ Blueprint;
используйте Illuminate \ Support \ Facades \ Schema;
class CreateJobsTable расширяет Migration

/ **
* Запустите миграции.
*
* @return void
* /
публичная функция вверх ()

Schema :: create ('jobs', function (Blueprint $ table)
$ table-> bigIncrements ('идентификатор');
$ table-> string ('очередь') -> index ();
$ table-> longText ('полезная нагрузка');
$ table-> unsignedTinyInteger ('попытки');
$ table-> unsignedInteger ('зарезервировано_at') -> nullable ();
$ table-> unsignedInteger ('доступный_в');
$ таблица-> unsignedInteger ('created_at');
);

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

Schema :: dropIfExists ('вакансии');

Выполните следующую команду из терминала, чтобы создать работа Таблица.

$ php artisan migrate

Создать класс почты

Вы должны создать почтовый класс для отправки писем из приложения Laravel. Выполните следующую команду, чтобы создать почтовый класс с именем SendEmail в месте приложение / Почта.

$ php artisan make: mail SendEmail

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

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

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

//

/ **
* Создайте сообщение.
*
* @return $ this
* /
публичная функция build ()

/ * Определяем имя представления, которое будет использоваться для шаблона электронной почты * /
return $ this-> view ('электронная почта');

Создать представление

Создайте файл представления с именем электронное письмо.лезвие.php со следующим содержимым, которое будет отправлено в теле письма.

Добро пожаловать в Linux Hint


Изучите Laravel легко

Создать класс работы

Выполните следующую команду, чтобы создать класс задания. Имя файла класса задания Отправка электронной почты.php будет создан в локации приложение / Вакансии.

$ php artisan make: задание Отправка электронной почты

Содержание Отправка электронной почты.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
* /
дескриптор публичной функции ()

/ * Создаем объект почтового класса и отправляем электронное письмо * /
$ email = новый SendEmail ();
/ * Установить действующий адрес электронной почты * /
Mail :: to ('Адрес электронной почты получателя') -> отправить ($ email);

Создать контроллер

Выполните следующую команду, чтобы создать контроллер для обработки очереди. Когда handleQueue () функция контроллера выполняется, задание очереди будет отправлено, и электронное письмо будет отправлено.

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

SendEmailController.php

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

/ **
* Использование очередей Laravel
* /
общедоступная функция handleQueue ()

/ * Помещаем новое задание в очередь заданий * /
отправка (новый SendingEmail ());
/ * Распечатать сообщение после отправки письма * /
echo «Электронное письмо было отправлено»;

Добавить маршрут

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

Route :: get ('электронная почта', '[электронная почта защищена]');

Запустите следующий URL-адрес в браузере, чтобы проверить, работает ли код. Откройте адрес электронной почты получателя, чтобы проверить, было ли получено новое письмо.

http: // локальный: 8000 / emailqueue

Добавить задержку

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

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

/ **
* Использование очередей Laravel
* /
общедоступная функция handleQueue ()

/ * Создаем новый объект очереди с задержкой 5 секунд * /
$ emailJob = (new SendingEmail ()) -> delay (Carbon :: now () -> addSeconds (5));
/ * Помещаем новое задание в очередь заданий * /
отправка ($ emailJob);
/ * Распечатать сообщение после отправки письма * /
echo «Электронное письмо отправлено через пять секунд»;

Снова запустите следующий URL-адрес в браузере, чтобы проверить, работает ли код. Здесь электронное письмо будет отправлено через пять секунд с использованием метода delay () за пять секунд.

http: // локальный: 8000 / emailqueue

Проверьте почтовый ящик адреса электронной почты получателя, чтобы узнать, было ли получено новое письмо через 5 секунд. Если задание в очереди работает правильно, будет получено электронное письмо со следующим содержанием.

Заключение

В этом руководстве показано очень простое использование очереди Laravel. Вы можете использовать очереди Laravel для различных целей в зависимости от требований вашего приложения. Я надеюсь, что это руководство помогло читателям лучше понять основные концепции очередей Laravel.

Эмуляция щелчков мыши с помощью мыши без щелчка в Windows 10
Использование мыши или клавиатуры в неправильной позе или чрезмерное использование может привести к множеству проблем со здоровьем, включая растяжение...
Добавьте жесты мыши в Windows 10 с помощью этих бесплатных инструментов
В последние годы компьютеры и операционные системы сильно эволюционировали. Было время, когда пользователям приходилось использовать команды для навиг...
Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...