【问题标题】:Supervisord get confused two programs in configuration fileSupervisord 混淆了配置文件中的两个程序
【发布时间】:2016-06-30 01:32:27
【问题描述】:

我有两个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 默认队列(程序:diagbovespa-default-queue)发送电子邮件时,有时我会收到来自diagbovespa 的电子邮件,有时会收到来自questionarioise 的电子邮件。

supervisord 和/或beanstalkd 配置中缺少什么?

【问题讨论】:

  • 你不能有两个数组键为beanstalkd的配置数组,它们必须是唯一的。
  • 谢谢@jszobody,我更新了这个问题。有两个单独的 queue.php 文件。

标签: php queue laravel-5.1 supervisord beanstalkd


【解决方案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 中使用它。

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 2012-05-17
    • 2021-11-21
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    相关资源
    最近更新 更多