我有laravel documentation中建议的主管来管理队列通知。我已经按照文档配置了主管,这是我的配置文件。
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/application/artisan queue:work --tries=3
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile=/var/www/application/storage/logs/worker/worker.log
这可以很好地工作,但是问题是一段时间后所有工作人员都停止了,即使有待完成的作业要完成也没有重新启动。
我需要使用sudo supervisorctl start laravel-worker:*
手动重新启动主管。
如何解决?
Supervisorctl does not auto-restart daemon queue worker when hanging这是类似的问题,但给出的解决方案与我在此处使用的是同一件事。
任何人都可以帮忙吗?
答案 0 :(得分:0)
您可以使用地平线。地平线为您处理所有这一切。 https://laravel.com/docs/5.8/horizon
用于地平线的主管脚本示例:
[program:horizon]
process_name=%(program_name)s
command=php /var/www/application/artisan horizon
autostart=true
autorestart=true
user=root
redirect_stderr=true
stdout_logfile=/var/www/application/storage/logs/horizon.log
也将此命令添加到您的部署过程中:
php artisan horizon:terminate
无需重新启动它,主管会为您完成。