在远程服务器上运行beanstalkd工作程序


Running beanstalkd worker on a remote server

我的堆栈设置包括以下内容

Machine1-主服务器(运行laravel)
Machine2-用于laravel代码库的MySql服务器
机器3-Beanstalkd工人

我在Machine1上设置了Supervisord,并添加了以下队列侦听器

[program:queue1]
command=php artisan queue:listen --queue=queue1 --tries=2
...

我的laravel队列配置文件(app/config/queue.php)读取以下

'beanstalkd' => array(
    'driver' => 'beanstalkd',
    'host'   => '--- Machine3 IP ---',
    'queue'  => 'queue1',
    'ttr'    => 60,
),

我已经在Machine3上安装了beanstalkd和Beanstalk控制台,可以看到我的任务被推送到队列并成功执行。然而,我不确定Machine3是否真的在执行它们,我怀疑的原因是主服务器上的CPU使用率很高,而Machine 3的CPU使用量没有峰值

我完全关闭了beanstalkd服务器,以检查队列是否仍在处理,结果是laravel报告了一个错误,表明它无法连接到beanstalkd服务器。

我在某个地方读到,你也需要在beanstalkd服务器(Machine3)上拥有你的laravel代码库,这真的是办法吗?

无论在哪台机器上运行queue:listen,都是对队列进行实际处理的机器。

目前,您所要做的只是将队列存储在机器3上,但在machine1中进行处理。

因此,如果要让machine3运行queue:listen命令来处理队列,则需要它。