Laravel 队列经常卡死

使用队列的原因:因为项目需要每天定时拉取多个 api 的数据,数据量大(每次上万个任务),所以选择使用队列拉取。

工具:laravel 队列,supervisor 进程监控

遇到的问题:队列在运行过程中会突然卡住不再运行,需要重启 horizon 和 supervisorctl,才会继续运行。

(2020-01-03 15:31:00 补充)难点:手动运行正常!重启队列并观察,也正常!运行一段时间,队列卡住,只有重启才能运行

疑问:
一开始想着是否是自己的程序有问题,但是手动使用 php artisan 运行 command 来检测任务的时候,每次在 horizon 面板都是看着正常运行。而且每次宕机之后,去看 horizon 面板都是发现任务累积了很多,所以也不存在是因为队列没有任务,导致 work 挂掉(而且已使用 Supervisor 进行监控)。
是否是说:laravel 队列长时间运行之后,必须重启?因为有时候一两天内都是正常的,过几天突然就卡了。

关于日志:在 horizon 日志中:没有异常报错,比如一直 processing 循环这种,中断任务时候都是前面正常运行,后面突然就停止了(日志就中断了)。在 failed_job 中,报错基本都是 job 运行的次数过多或者时间过长

目前已采用的解决方案:
1、将任务分割为多个队列进程,第一为了不让某些任务影响到后续任务,第二方便定位问题并且重新手动运行任务,第三,不知是否是单一队

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值