Laravel — запускать все очереди через кодирование

Я создаю 5 очередей с именами q1, q2..q5 каждая имеет задание для выполнения. Чтобы запустить все 5 заданий одновременно, поместите каждое задание в разные очереди.

с помощью команды artisan, я могу запустить каждую очередь в отдельных консолях

php artisan queue:work --queue:q1
php artisan queue:work --queue:q2
..
..
php artisan queue:work --queue:q5

Я получил успех с вышеупомянутой командой в консоли. Но теперь мне нужно выполнить вышеуказанные команды в коде без использования консоли.

Поэтому я попытался с кодом ниже, чтобы выполнить.

\Illuminate\Support\Facades\Artisan::call("queue:work", ["--queue" => "q1"]);
\Illuminate\Support\Facades\Artisan::call("queue:work", ["--queue" => "q2"]);
..
..
\Illuminate\Support\Facades\Artisan::call("queue:work", ["--queue" => "q5"]);

Но проблема в том, что q2 выбирается только после завершения q1, что означает, что очереди выполняются последовательно, а не параллельно.

я использовал sync опция для драйвера очереди. Это также сначала выполняет q1, а затем выбирает q2 только после завершения q1.

Моя техническая конфигурация

Queue drive: database
Os: windows
Laravel version: 5.5, Lumen 5.4
Mysql Database.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]