laravel代码推上后没有生效,supervisor 遇到的坑

supervisor

程序开了两个队列(A和B),一开始查日志的时候
tail -f xxx 发现A队列总是出现没有数据的情况,而每次都是在B队列能查到数据,任务的执行效率也降低了一些,开始没发现,后面改了代码后,代码没生效

  1. 考虑到是服务器(nginx\php), 查了下状态没有生效 无异常
  2. 代码仓库问题,上服务器查文件 无异常
  3. 日志返回没有打印出测试的文本,考虑是队列可能不会根据代码更新而生效,可能需要重启下 找到问题的根源

排查过程

两个队列:
在这里插入图片描述
此时发现其中一个队列出现问题
看了网上的教程后,Exited too quickly (process log may have details) 出现的原因是 程序出现错误。
立马重启:命令 supervisorctl restart laravel-job-worker:laravel-job-worker_00

重启后恢复,运行状态,感觉可能出现的问题是队列没有跑最新的代码,于是重启了另外一个正常的队列,验证后确定是正常了

附supervisorctl 常用命令 :

supervisorctl status
supervisorctl stop 队列名
supervisorctl start 队列名
supervisorctl restart 队列名
supervisorctl reread
supervisorctl update
supervisorctl reload

带着问题找原因:
因为队列处理器是常驻进程,他们在重启前不会应用你代码的更改。因此,部署使用队列处理器的应用最简单的方法是在部署进程中重启队列处理器。你可以平滑地重启所有队列处理器通过使queue:restart 方法:

php artisan queue:restart

后面遇到这种问题,优先使用 php artisan queue:restart

其次,人力预算成本高一点的话,个人觉得还是使用rabbitMQ, 这种改一次要跑 重启命令的方式,讲道理,谁顶得住代码能跑就行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值