Как работает очередь в нескольких процессах в Laravel?
Всем привет.
Ребят, подскажите, если у меня есть очередь в которую помещаются все задания по работе с API одного сервиса и мне необходимо чтобы задачи выполнялись строго по очереди с интервалом. Я их помещаю в одну очередь "API".
Так же есть остальные задачи (отправка писем и т.п.), которые я помещаю в "default".
Запускаю супервизор примерно с таким конфигом:
[program:app-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/app/artisan queue:work --queue=API,default --tries=0 --rest=10
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=user
numprocs=2
redirect_stderr=true
Вопрос в следующем: будет сначала выполняться очередь "API" в двух процессах (параллельно), потом очередь "Default" ? Или же будет параллельно выполняться в одном процессе "API", а во втором процессе "Default"?
Ты запускаешь два процесса, каждый из которых обрабатывает две очереди в указанном порядке. То есть две одновременно разгребают API, пока там что-то есть, а до default дело дойдет только когда в API будет пусто.
Как только в API появятся еще задачи, оба воркера опять будут разгребать только API, пока там не станет пусто.