Как запустить несколько заданий Laravel в очереди одновременно?

У меня есть система, выполняющая несколько видов заданий (очереди Laravel 5.1). Я использую драйвер очереди базы данных.

Супервайзер проверяет 3 «экземпляра» queue:work работают как демон все время.

ps aux | grep queue подтверждает это — три процесса ждут работы.

Иногда я вижу несколько записей заданий (без задержки) в таблице базы данных, но всегда только одна из них имеет reserved флаг установлен в 1.

Что я делаю неправильно?

Почему 3 рабочих демона не занимаются другими заданиями в очереди?

Как я могу сделать так, чтобы одновременно можно было выполнять более одной работы?

ОБНОВИТЬ:

Я написал задание, которое спит в течение 15 секунд, а затем отправляет три новых задания (того же класса).

Я запустил это на моем сервере разработки, и это сработало. Три работы были зарезервированы одновременно. Как только с одним из них разбираются — другой берется из очереди и резервируется. Поведение, которое можно ожидать.

Наконец я запустил ту же ситуацию на моем рабочем сервере, и она не сработала. Одна зарезервированная работа за раз, хотя среда похожа, три очереди: рабочие процессы и т. Д.

Затем я попросил супервизора перезапустить рабочих, и он тоже начал работать.

Итак: это работает таким образом. Проблема в том, что я не знаю, что могло быть причиной проблемы, которая у меня была, и когда это произошло? Как мне избежать этого и как мне узнать, все ли в порядке сейчас?

0

Решение

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

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

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

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