如何从同一服务器运行不同的Beanstalkd Laravel队列?

时间:2019-02-19 09:36:06

标签: laravel supervisord beanstalkd laravel-queue

我在同一服务器上有两个不同的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

您能帮我解决吗?

1 个答案:

答案 0 :(得分:0)

找到了解决我的问题的方法。尽管作业是从一开始就从smsIntTest的测试站点和smsInt的另一个站点调度的。但是,他们每次都会被错误的队列接住。

如以下帖子所述,Why is Laravel or Beanstalkd skipping jobs?

我在一个站点的app / config / queue.php文件的'connections'数组中分配了'queue'=>'smsInt',为另一个站点分配了'queue'=>'smsIntTest'。这个解决方案解决了这个问题。