2015-05-28 64 views
3

我栈建立由以下部分组成:安装远程beanstalkd Laravel 4.2

  1. www.main.com - 主服务器(主应用程序代码& supervisord)
  2. www.queue-server.com - 安装Beanstalkd此处(here无代码只beanstalkd)

我使用Laravel 4.2

我对设置Supervisordwww.main.com,并添加以下队列监听:

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服务器上处理我的工作。我怎样才能做到这一点?

回答

2

beanstalkd服务器只是队列数据本身的存储,它没有处理。它的php artisan queue:work命令然后处理队列。这就是为什么你看到www.main.com服务器的负载较高,因为虽然你的队列存储在另一台服务器上,但主服务器是当前处理队列的服务器。

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

+0

谢谢Wader,我会在'www.queue-server.com'上复制代码,但用户只会使用www.main.com,因此'\ Queue :: push'('myqueue',[ 'data'])'代码只会在'www.main.com'上执行,它会起作用吗? – Ravi

+0

是的,这很好。在你的队列服务器上安装你的代码,然后在那里运行'queue:work'命令,它将在你的队列服务器上处理你的队列,并把你的主服务器留给网络。 – Wader

+0

谢谢我会试一试... – Ravi