Поиск…


Вступление

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

Случаи применения

Например, если вы отправляете электронное письмо клиенту после запуска задачи, лучше сразу перенаправить пользователя на следующую страницу во время очередности отправки электронной почты в фоновом режиме. Это ускорит время загрузки для следующей страницы, так как отправка электронной почты может занять несколько секунд или дольше.

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

Конфигурация драйвера очереди

Каждый из драйверов очереди Laravel настроен из файла config/queue.php . Драйвер очереди - это обработчик для управления запуском задания в очереди, определение того, были ли задания успешными или неудачными, и повторить попытку задания, если оно настроено для этого.

Из коробки Laravel поддерживает следующие драйверы очереди:

sync

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

database

Этот драйвер хранит задания в очереди в базе данных. Перед включением этого драйвера вам необходимо создать таблицы базы данных для хранения заданий в очереди и неудачных заданий:

php artisan queue:table
php artisan migrate

sqs

Этот драйвер очереди использует Amazon Simple Queue Service для управления заданиями в очереди. Перед включением этого задания необходимо установить следующий пакет aws/aws-sdk-php ~3.0 : aws/aws-sdk-php ~3.0

Также обратите внимание, что если вы планируете использовать задержки для заданий в очереди, Amazon SQS поддерживает максимальную задержку в 15 минут.

iron

Эти драйверы очереди используют Iron для управления заданиями в очереди.

redis

Этот драйвер очереди использует экземпляр Redis для управления заданиями в очереди. Перед использованием этого драйвера очереди вам нужно будет настроить копию Redis и установить следующую зависимость композитора: predis/predis ~1.0

beanstalkd

Этот драйвер очереди использует экземпляр Beanstalk для управления заданиями в очереди. Перед использованием этого драйвера очереди вам нужно будет настроить копию Beanstalk и установить следующую зависимость композитора: pda/pheanstalk ~3.0

null

Указание нулевого значения в качестве драйвера очереди будет отбрасывать любые задания в очереди.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow