单服务器Laravel生产与Staging环境Supervisor队列管理问询
回答
是的,你必须对Supervisor和laravel-worker-staging.conf做操作,否则staging环境的队列worker会一直后台运行,持续消耗服务器的CPU、内存资源——哪怕你已经禁用了staging的Nginx服务器块,worker进程还是会独立运行并监听该站点的队列任务。
下面是具体的操作步骤:
停止当前运行的staging worker进程
执行以下命令立即终止所有属于laravel-worker-staging的进程:supervisorctl stop laravel-worker-staging:*(这里的
*匹配该程序的所有子进程,虽然你配置了numprocs=1,用通配符能确保彻底停止所有相关进程)禁用staging的Supervisor配置
为了避免Supervisor在重启后自动重新启动这个worker,你可以将配置文件重命名(推荐保留文件以便未来恢复):mv /etc/supervisor/conf.d/laravel-worker-staging.conf /etc/supervisor/conf.d/laravel-worker-staging.conf.disabled如果你确定以后不再需要这个配置,也可以直接删除它:
rm /etc/supervisor/conf.d/laravel-worker-staging.conf让Supervisor加载更新后的配置
最后执行以下命令让Supervisor读取并应用配置变更:supervisorctl reread supervisorctl updatereread:让Supervisor扫描配置目录,识别出已禁用/删除的配置文件update:应用这些变更,确保禁用的worker不会再被启动
完成这些操作后,staging环境的队列worker就会彻底停止运行,不再消耗服务器资源了。
内容的提问来源于stack exchange,提问作者adam78
相关产品推荐
相关产品推荐

