Supervisord混淆了配置文件中的两个程序
Supervisord get confused two programs in configuration file
我有两个 laravel 5.1
应用程序,它们使用 beanstalkd
和 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
diagbovespa
应用程序的 queue.php
文件已将 beanstalkd
定义为
'beanstalkd' => [
'driver' => 'beanstalkd',
'host' => 'localhost',
'queue' => 'default',
'ttr' => 60,
],
并且 queue.php
questionarioise
应用程序 beanstalkd
定义为
'beanstalkd' => [
'driver' => 'beanstalkd',
'host' => 'localhost',
'queue' => 'questionarioise',
'ttr' => 60,
],
所以 beanstalkd 考虑两个队列组,default
和 questionarioise
。
问题是,当我通过 laravel 默认队列 (program:diagbovespa-default-queue) 发送电子邮件时,有时我会收到来自 diagbovespa
的电子邮件,有时会收到来自 questionarioise
的电子邮件.
我在 supervisord
and/or beanstalkd
配置中缺少什么?
您的队列工作人员没有指定队列名称,因此他们将选择具有任何队列标签的任何作业。
在您的配置中,您有 '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 中也使用它。
我有两个 laravel 5.1
应用程序,它们使用 beanstalkd
和 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
diagbovespa
应用程序的 queue.php
文件已将 beanstalkd
定义为
'beanstalkd' => [
'driver' => 'beanstalkd',
'host' => 'localhost',
'queue' => 'default',
'ttr' => 60,
],
并且 queue.php
questionarioise
应用程序 beanstalkd
定义为
'beanstalkd' => [
'driver' => 'beanstalkd',
'host' => 'localhost',
'queue' => 'questionarioise',
'ttr' => 60,
],
所以 beanstalkd 考虑两个队列组,default
和 questionarioise
。
问题是,当我通过 laravel 默认队列 (program:diagbovespa-default-queue) 发送电子邮件时,有时我会收到来自 diagbovespa
的电子邮件,有时会收到来自 questionarioise
的电子邮件.
我在 supervisord
and/or beanstalkd
配置中缺少什么?
您的队列工作人员没有指定队列名称,因此他们将选择具有任何队列标签的任何作业。
在您的配置中,您有 '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 中也使用它。