2015-05-28 106 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