Horizon 运行良好,但直到最近,在部署之后,主管和队列工作人员不会再次启动,Horizon GUI 显示“不活动”
为了让它们再次运行,我可以:
- 从 forge 中重新启动守护进程
- 重启supervisor
/etc/init.d/supervisor restart
我的部署脚本中有 php artisan horizon:terminate
。我也尝试过重置/清除及其组合。
当我在命令中以非事件地平线运行 terminate 时,它似乎什么也没做。当我在 horizon 事件的情况下运行相同的命令时,它会关闭它,但守护进程不会重新启动 supervisor。
守护进程在所有这些过程中运行没有任何错误。
应该终止关闭并启动服务还是守护进程本身?
最佳答案
运行 horizon:terminate
将杀死守护进程,当守护进程被杀死时,监督者将意识到这一点并启动一个新的守护进程。如果您在运行终止命令时使用 htop
监控您的服务器,您可以清楚地看到这一点。
如果一个长时间运行的作业正在运行,它将运行当前作业直到它完成。终止通常是重新启动进程,以确保新代码已加载到地平线中,这应该在 envoyer
或类似部署工具的最后一步之后完成。
您的设置似乎有问题。地平线进程是否在您调用终止之前运行,再次检查 htop
?。或者手动调用命令时会发生什么情况?
关于Laravel horizon supervisor 在 horizon::terminate with forge daemon running 后不会重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544432/