Php工匠队列:工作与主管不起作用

时间:2017-12-01 16:19:37

标签: laravel supervisord

我安装了&配置主管。

ps -ax显示了10个流程,例如: php /home/vagrant/Sites/mysite/artisan queue:work --tries=1

然而,当我把东西放入队列时,它就会停留在那里,没有任何反应。但是,如果我手动运行此命令(即使在流浪者用户下,确切地说它是如何做主管)一切正常。

我使用Redis保留队列。

可能是什么原因?

更新

所以,这里有一些额外的信息,因为我真的无法理解。

Laravel 5.5版

实际上我有2个项目的两个主管配置。第一个似乎工作。第二个没有。我的意思是,我可以通过ps -ax查看流程,但没有任何反应。两种配置都是相同的:

[program:mysite-worker] process_name=%(program_name)s_%(process_num)02d command=php /home/vagrant/Sites/mysite/artisan queue:work --tries=1 autostart=true autorestart=true user=vagrant numprocs=10 redirect_stderr=true stdout_logfile=/home/vagrant/Sites/mysite/worker.log

此外,我无法弄清楚如何启用和禁用某些配置(例如en2site用于supervisord :))

所以,当我把一些东西放进队列时,我可以用redis看到它。然后我在vagrant用户下手动运行php /home/vagrant/Sites/mysite/artisan queue:work --tries=1,并调度并运行队列作业。但只有我手动运行命令= \

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

问题是呼叫时农民因为主管 php / home / vagrant / Sites / mysite / artisan queue:work --tries = 1

实际上不在项目工作目录中,并且技术人员无法找到.env文件。

因此您可以选择一些方法来解决此问题:

  1. 从.env文件设置您的环境变量 或
  2. 将目录参数添加到您的主管配置 目录=“路径/到/您的/项目” 或
  3. 将php.ini中的set_include_path设置为您的项目文件夹