2013-09-28 40 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"