2016-03-14 59 views
0

我有两个laravel 5.1应用程序使用beanstalkdsupervisord来管理队列作业。Supervisord在配置文件中混淆了两个程序

的supervisord.conf文件具有定义为

[program:diagbovespa-default-queue] 
command=php artisan queue:listen --tries=2 --env=aceite 
process_name=%(program_name)s_%(process_num)02d 
directory=/sciere/sites/diagbovespa.aceite.pro.br 
numprocs=2 
user=apache 
redirect_stderr=true 
autostart=true 
autorestart=true 
stdout_logfile=/sciere/sites/diagbovespa.aceite.pro.br/storage/logs/queue_supervisord.log 

[program:questionarioise-default-queue] 
command=php artisan queue:listen --tries=2 --env=aceite 
process_name=%(program_name)s_%(process_num)02d 
directory=/sciere/sites/questionarioise.aceite.pro.br 
numprocs=2 
user=apache 
redirect_stderr=true 
autostart=true 
autorestart=true 
stdout_logfile=/sciere/sites/questionarioise.aceite.pro.br/storage/logs/queue_supervisord.log 

两个节目的queue.php文件为diagbovespa应用程序已beanstalkd定义为

'beanstalkd' => [ 
     'driver' => 'beanstalkd', 
     'host' => 'localhost', 
     'queue' => 'default', 
     'ttr' => 60, 
    ], 

queue.phpquestionarioise应用程序已beanstalkd定义为

'beanstalkd' => [ 
     'driver' => 'beanstalkd', 
     'host' => 'localhost', 
     'queue' => 'questionarioise', 
     'ttr' => 60, 
    ], 

所以beanstalkd考虑两个队列组,defaultquestionarioise

问题是,当我通过laravel默认队列(程序:diagbovespa-default-queue)发送电子邮件时,有时我会收到来自diagbovespa的邮件,有些来自questionarioise

我在supervisord和/或beanstalkd配置中丢失了什么?

+0

你不能有两个配置数组,它们的数组键是'beanstalkd',它们必须是唯一命名的。 – jszobody

+0

谢谢@jszobody,我更新了这个问题。有两个单独的'queue.php'文件。 – Caco

回答

1

您的队列工作人员没有指定队列名称,因此他们将使用任何队列标签接收任何作业。

在您的配置中,您有'queue' => 'default''queue' => 'questionarioise'。您需要更新您的队列工人听,只处理那些工作:

[program:diagbovespa-default-queue] 
command=php artisan queue:listen --tries=2 --env=aceite --queue=default 

和:

[program:questionarioise-default-queue] 
command=php artisan queue:listen --tries=2 --env=aceite --queue= questionarioise 

虽然我建议从default改变第一队列名称,以更具体的像diagbovespa东西,并在supervisord中使用它。