编程语言
首页 > 编程语言> > php-在远程服务器上运行beanstalkd worker

php-在远程服务器上运行beanstalkd worker

作者:互联网

我的堆栈设置包括以下内容
Machine1-主服务器(正在运行的laravel)
Machine2-Laravel代码库的MySql Server
Machine3-豆茎工人

我在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,
),

而且我已经在Beanstalk控制台上与Machines3一起安装了beantalkd,可以看到我的任务被推送到队列并成功执行.但是我不确定Machine3是否真的在执行它们,我怀疑的原因是主服务器上的CPU使用率很高,而Machine3上的CPU使用率没有峰值

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

我读过某个地方,您也需要在Beanstalkd服务器(Machine3)上安装laravel代码库,这真的是要走的路吗?

解决方法:

无论运行队列的机器是哪台机器,请执行以下操作:实际处理队列的机器.

目前,您所要做的只是将队列存储在machine3上,但在machine1上进行处理.

因此,如果希望机器3处理队列,则需要让它运行queue:listen命令.

标签:laravel-4,beanstalkd,pheanstalk,php
来源: https://codeday.me/bug/20191121/2049508.html