redis 查看堆积_Celery+Redis 断开连接 问题解决

在Python web项目中,使用Celery和Redis时遇到Celery执行异步任务时与Redis断开连接的问题。通过查看日志发现是消息队列堆积导致Redis缓冲区溢出。排查后发现定时任务进入了默认队列但未被消费,原因是启动worker时只指定了特定队列,未处理默认队列。解决方案是为默认队列启动worker进行消息消费。
摘要由CSDN通过智能技术生成

最近接手一个Python web项目,项目中使用 Celery 异步执行一些耗时任务,服务每天都有部分接口阶段性的出现 500 响应。

查看日志发现是 Celery 在执行异步任务时与 Redis 断开连接。

主要错误日志如下:

File ""/usr/local/lib/python3. 6/site-packages/redis/connection, py"", line 613, in send_packed_command 
(errno, errmsg))
redis. exceptions. ConnectionError: Error 104 while writing to socket. Connection reset by peer.

由于刚接手项目,本人对 Celery 也不熟,处于会跑示例代码的水平,所以甩锅给 Redis ,联系运维人员查看 Redis 运行日志,发现如下问题:

Client id=1001 addr=127.0.0.1:49148 fd=17 name= age=3 idle=0 flags=N db=1 sub=559686 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=2998 omem=49146289 events=rw cmd=subscribe scheduled to be closed ASAP for overcoming of output buffer limits.

得出的结论为ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值