Supervisord Fatal(Laravel 4.1 + Beanstalkd)没有在“queue”命名空间中定义的命令

时间:2015-01-22 16:32:19

标签: laravel centos supervisord beanstalkd artisan

这是一个奇怪的。我正在使用beanstalkd为Laravel 4.1队列运行主管3.13。我的app的/ stage /和/ production /实例正在运行。我正在运行管理员程序来运行工匠队列:监听(从单独的.conf文件中),如下所示:

[program:appname-production]
command=php artisan queue:listen --env=production
directory=/home/servername/public_html/production
stdout_logfile=/home/servername/public_html/production/app/storage/logs/supervisord.log
redirect_stderr=true
autostart=true
autorestart=true

唯一的区别是在计划中用阶段替换生产。但是,当主管运行时,只有阶段程序正确执行。制作节目显示FATAL退出太快

appname-production            FATAL     Exited too quickly (process log may have details)
appname-stage                 RUNNING   pid 6784, uptime 0:32:01

舞台队列工作正常,如ps aux所示。此外,运行工匠队列:在生产文件夹中监听工作正常。然而,当我检查生产的监督日志时,它充满了:

X-Powered-By: PHP/5.5.20
Content-type: text/html

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

我已经用尽了我对这里设置的技术知识 - 我似乎无法推断为什么两个克隆设置的行为不同。我只能猜到主管在某个地方变得困惑 - 因为我可以通过手动操作让生产队列正常工作。

非常感谢所有的帮助/想法。

1 个答案:

答案 0 :(得分:3)

最后修好了这个并想分享。像其他解决方案一样,修复程序与设置php的绝对路径有关。但是,PATH var也需要通过子进程conf中的环境进行设置。我们走了:

[program:appname]
command=/usr/local/bin/php artisan queue:listen --env=production
directory=/home/appdir
stdout_logfile=/home/appdir/app/storage/logs/supervisord.log
redirect_stderr=true
autostart=true
autorestart=true
environment=PATH="/usr/local/bin"

希望这可以帮助将来的某个人!