设置远程 beanstalkd Laravel 4.2

Setup Remote beanstalkd Laravel 4.2

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

  1. www.main.com - 主服务器(主应用程序代码和 supervisord)
  2. www.queue-server.com - 这里安装了 Beanstalkd(这里没有代码只有 beanstalkd)

我正在使用 Laravel 4.2

我在 www.main.com 上设置了 Supervisord 并添加了以下队列侦听器:

php artisan queue:work--queue=test --env=test

我的app/config/queue.php文件设置如下:

'beanstalkd' => array(
    'driver' => 'beanstalkd',
    'host'   => 'www.queue-server.com',
    'queue'  => 'test',
    'ttr'    => 60,
),

根据我的理解,它应该在 www.queue-server.com 服务器上推送和处理作业,但在那里没有显示 cpu 峰值,但 www.main.com 服务器显示高 cpu 使用率。

所以我的问题是:

  1. 我的设置正确吗?或者我必须改变什么?
  2. 我想在 www.queue-server.com 服务器上处理我的工作。我怎样才能做到这一点?

beanstalkd服务器只是队列数据本身的存储,不做任何处理。它是 php artisan queue:work 命令,然后处理队列。这就是为什么您在 www.main.com 服务器上看到更高负载的原因,因为尽管您的队列存储在另一台服务器上,但主服务器是当前处理队列的服务器。

如果您希望 www.queue-server.com 服务器处理队列,您还需要在那里安装您的应用程序,并从那里 运行 artisan 命令。