как использовать очередь, когда запросы параллельны в laravel - PullRequest
0 голосов
/ 25 июня 2019

моя функция в контроллере Вызов параллельный, и я создаю задание для очереди использования в laravel, потому что параллельный вызов вызывает проблему

я называю эту работу в моей функции:

$this->dispatch(new ProcessReferal($orderId));

и я запускаю эту команду в терминале:

php artisan queue:work --tries=3

Но моя работа все еще выполняется параллельно

И обрабатывает процесс одновременно

что не так?

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Привет,

С помощью laravel очереди вам нужно настроить некоторую информацию в вашем коде:

Подробнее: https://laravel.com/docs/5.8/queues#connections-vs-queues

Первый:

  • Драйвер: синхронизация по умолчанию, поэтому вам нужно изменить его на: база данных , redis ... Youможете изменить его в файле .env (QUEUE_DRIVER = база данных ...)

  • Соединения: Очень важно, если вы устанавливаете драйвер как базу данных и используете mutil DB для вашего проекта.

Секунда:

  • В очереди Laravel есть некоторые настройки, но я думаю, что нам нужно увидеть 3 вещи: retry_after, timeout, try.Когда вы работаете с большой работой, retry_after и timeout очень важны.

Надеюсь, это поможет вам.

0 голосов
/ 25 июня 2019

Если вы проверяете это на локальном сервере.Затем необходимо добавить QUEUE_DRIVER=database в файл .env.

QUEUE_DRIVER=sync используется для параллельного вызова

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...