2016-03-14 60 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中使用它。