laravel队列卡死问题归纳

11 篇文章 0 订阅

参考以下文章:

  1. 队列中使用curl 相关代码没有设置超时时间导致队列超时没有报错,卡死不执行后续队列任务。
    Laravel队列任务超时后不退出,导致队列挂起的故障分析

  2. 在laravel 队列中设置监听报错:
    Laravel队列使用中踩的坑,不报错但是队列一直再重试

  3. laravel 中文论坛讨论帖:
    关于 Laravel 队列经常卡死的问题。

其中第一点就是我遇到的问题,curl连接超时报错,laravel队列是捕获不到的。希望可以帮到遇到同样问题的你。


  1. redis队列未找到消费队列
    最近又遇到这种问题(公司这套代码是laravel5.2),在supervisor中使用的是queue:work --daemon(命令1)来监听队列,队列只消费了1条,然后就不再消费了。如果使用queue:listen则可以正常执行,但是使用listen 系统资源占用太大了。经过以上3种问题排查后还是没找到问题。后来经过运维排查运行完整日子(命令2),排查到代码层面的问题。
//1.
php artisan queue:work --daemon --tries=3 --delay=10 --memory=30 --queue=default

//2.
strace -f -s 100 -o /tmp/aa.log php artisan queue:work --daemon --sleep=3 --tries=3 --queue=default

本次问题所在: 队列reids驱动默认使用redis的数据库0,在代码中切换了redis的数据库到3($redis->select(3);),第一条队列可以正常消费,到要消费第二条时,laravel队列不会重新切换回到数据库0,还是在数据3找,就找不到需要消费的队列了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值