【问题标题】:Php artisan queue:work doesn't work with supervisorPhp工匠队列:工作不适用于主管
【发布时间】:2017-12-01 16:19:36
【问题描述】:

我已经安装并配置了主管。

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

但是,当我将某些内容放入队列中时,它会停留在那里并且没有任何反应。但是,如果我手动运行此命令(即使在 vagrant 用户下,它到底是如何执行主管的)一切正常。

我使用 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 并调度并运行队列作业。但只有当我手动运行命令=\

【问题讨论】:

  • 请分享您的*.conf文件
  • 你使用的是什么版本的 Laravel?
  • @Matz 我更新了我的帖子 :)
  • 试试sudo supervisorctl reread..然后..sudo supervisorctl update..最后..sudo supervisorctl start laravel-worker:*
  • 不知道为什么,但它开始工作了。忘记做噩梦了..

标签: laravel supervisord


【解决方案1】:

我也遇到了同样的问题。

问题很明显,因为主管在通话时 php /home/vagrant/Sites/mysite/artisan queue:work --tries=1

实际上不在项目工作目录中,artisan 找不到 .env 文件。

所以你有一些选择来处理这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2019-06-03
    • 2014-11-10
    • 2018-07-25
    • 2016-03-19
    • 2016-04-03
    • 1970-01-01
    相关资源
    最近更新 更多