0

我在 CentOS 6 VPS 上使用 Laravel 4 + Beanstalk + Supervisor。

在 VPS 上同时安装 beanstalk 和 supervisor 已经很痛苦了,但我通过了它(我已经在我的本地服务器 Macbook Pro 上完成了同样的安装,并且在那里工作正常)。

我想利用 Laravel 4 的队列和 Beanstalk 来异步发送电子邮件。我已经为基本上运行命令的主管制作了一个“程序”

php artisan queue:listen --env=production

但与此相关的过程不会成功启动。我为此过程定义的日志输出以下内容:

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

显然,工匠正在寻找它根本不喜欢的东西。

请,请,,你会帮助我吗?我在 Google 上找到的唯一结果是一个未答复的git 问题帖子,以及一个同样无用的线程,在 Laravel 的论坛上没有答案。

编辑:测试我注意到 Artisan 的 queue:listen 在我在 shell 中运行时工作正常,但是当 Supervisord 尝试运行该命令时,会发生 InvalidArgumentException。

4

2 回答 2

2

在我的情况下,如果你们中的任何人遇到过这个问题,解决方案如下:

我安装了 supervisord 2.1 版(通过 pip)。我至少需要 3.0 版(因为在 3.0 版中引入了“目录”设置(在 supervisord.conf 文件中使用)。

我不得不

pip uninstall supervisor

然后我不得不

pip install supervisor==3.0

之后,我只需要在 /etc/supervisord.conf 中设置所需的配置值,我artisan的运行queue:listen就没有问题了。

于 2013-10-03T00:59:26.600 回答
0

我有类似的问题,并得到了我发布的对我有用的问题的答案:

Supervisord 让我的 Laravel 队列: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"
于 2014-07-29T20:06:45.723 回答