2013-09-28 39 views
0

我在CentOS 6 VPS上使用Laravel 4 + Beanstalk + Supervisor。Laravel 4隊列 - [InvalidArgumentException]在「隊列」名稱空間中沒有定義命令

它已經對VPS同時安裝豆莖和督導員的痛苦,但我挺過來了(我已經這樣做了相同的安裝我的本地服務器上,一臺Macbook Pro和它的正常工作有)。

我想利用Laravel 4的Queues和Beanstalk異步發送電子郵件。我已經爲監督員「程序」,基本上運行命令

php artisan queue:listen --env=production 

,但關聯到該進程不會成功地啓動。我爲這個過程定義的日誌輸出以下內容:

[InvalidArgumentException] 
There are no commands defined in the "queue" namespace. 

顯然,工匠在找到一些它根本不喜歡的東西。

請,,你會幫我嗎?我在Google上找到的結果只有未回覆 git問題帖子,以及在Laravel論壇中沒有答案的同樣無用的帖子。

編輯:測試我注意到,工匠的隊列:聽工作正常時,由我在shell中運行,但當Supervisord嘗試運行該命令,InvalidArgumentException發生。

回答

2

在我的情況的解決辦法,如果你的任何一個曾經碰到過這樣的問題,是以下幾點:

我supervisord 2.1版安裝(通過PIP)。我至少需要3.0版本(因爲「目錄」設置(在supervisord.conf文件中使用),在3.0版本中引入的。

我不得不

pip uninstall supervisor 

然後我不得不

pip install supervisor==3.0 

在那之後,我只是在/etc/supervisord.conf設置所需的配置值,和我artisan正在運行queue:listen沒有問題。

0

我有類似的問題,並得到了我的答案我張貼的疑問,工作對我來說:

Supervisord makes my Laravel queue:listen throw InvalidArgumentException

而不是做:

[program:lvcartsey] 
command=php artisan queue:listen --env="local" 
stdout_logfile=/home/mike/web/app/storage/logs/myqueue_supervisord.log 
redirect_stderr=true 
directory=/home/mike/web 
;autorestart=true 
;autostart=true 
user=mike 
在我替換命令與supervisor.conf

command=/usr/local/bin/php artisan queue:listen --env="local"