Laravel асинхронные рабочие - PullRequest
1 голос
/ 08 марта 2019

Я пытаюсь настроить очереди Laravel 5.7 для запуска буквально в одно и то же время.Асинхронный.Я получаю много ответов через Google / Stack Overflow, однако все они просто говорят «установить драйвер для базы данных».Это не работаетУ нас настроен драйвер базы данных и рабочий, работающий как демон.Только один работник.

Поскольку люди используют приложение, ему может потребоваться обработать некоторые данные с помощью стороннего API, что может занять некоторое время, в то время как это обрабатывает, другие люди делают другие вещи, которые требуют других заданий.Прямо сейчас все происходит последовательно.Задание A должно быть завершено до запуска задания B.

Я бы хотел, чтобы задания A и B запускались одновременно.Или я хочу, чтобы задание B запускалось / заканчивалось, даже если задание A уже запущено.

Как Laravel поддерживает это?Нужно ли создавать много рабочих, и чтобы каждая категория работ выполнялась под другим работником?

nohup php artisan queue:work --daemon >/dev/null 2>&1 &

Спасибо

1 Ответ

0 голосов
/ 08 марта 2019

Посмотрите на Конфигурацию Supervisor документации Очереди.

В этом примере директива numprocs даст команду Supervisor запустить 8 queue:work процессов иконтролировать все из них, автоматически перезапуская их в случае их сбоя.

Если вы не используете Supervisor, вы можете запускать больше php artisan queue:work процессов самостоятельно, но Supervisor контролирует это за вас.

...