Как запускать разные очереди Beanstalkd Laravel с одного сервера?

У меня есть две разные очереди Laravel на одном сервере. В моей папке Supervisord.d у меня есть два файла ini для этих очередей. Имена заданий в очередях разные. Но каждый раз, когда я запускаю задание и ожидаю результата из одной очереди, другая очередь тоже мешает. Вот пример ini-файлов:

[program:queue_runner]
command = php /path_to_prod/artisan queue:work --daemon --queue=default,smsInt,smsIntLow --tries=1 --timeout=30
stdout_logfile = /path_to_prod/storage/logs/supervisor.log
redirect_stderr = true
numprocs = 5
process_name = %(program_name)s%(process_num)s


[program:queue_runner_test]
command = php /path_to_test/artisan queue:work --daemon --queue=default,smsIntTest,smsIntTestLow --tries=1 --timeout=30
stdout_logfile = /path_to_test/storage/logs/supervisor.log
redirect_stderr = true
numprocs = 50
process_name = %(program_name)s%(process_num)s

Не могли бы вы помочь мне решить эту проблему.


person G. Basu    schedule 19.02.2019    source источник
comment
Попробуйте использовать только очередь для каждого работника, пожалуйста.   -  person dparoli    schedule 19.02.2019
comment
Уточните другая очередь тоже мешает, пожалуйста   -  person Styx    schedule 19.02.2019
comment
Для первого задания я использую smsInt,smsIntLow эти две очереди, а для второго smsIntTest,smsIntTestLow это очереди. Должен ли я удалить значение по умолчанию из них? @dparoli   -  person G. Basu    schedule 19.02.2019
comment
да, у меня на сайте 5 воркеров, у каждого только одна очередь. Попробуйте удалить также дефолт.   -  person dparoli    schedule 19.02.2019
comment
Другие очереди также мешают, значит, SmsInt и SmsIntLow объединены в цепочку для программы queue_runner, а SmsIntTest и SmsInTesttLow связаны вместе для программы queue_runner_test. Для задания queue_runner выполняется smsInt -> smsIntTest вместо smsInt->smsIntLow.   -  person G. Basu    schedule 19.02.2019
comment
Попробовал ваше предложение @dparoli. Но, не мог заставить это работать.   -  person G. Basu    schedule 19.02.2019


Ответы (1)


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

Как указано в следующем сообщении, Почему Laravel или Beanstalkd пропускают задания?

Я назначил 'queue' => 'smsInt' в массиве 'connections' файла app/config/queue.php для одного сайта и 'queue' => 'smsIntTest' для другого. Это решение решило проблему.

person G. Basu    schedule 20.02.2019