celery 结合 rabbitmq 使用时,celery 消费者执行时间太久发送 ack 消息失败

celery 5.3.6 结合 rabbitmq 使用时,celery 消费者执行时间超过 30 分钟,执行完成后向 rabbitmq 发起确认消费完成的 ack 消息时,提示 Connection reset by peer,rabbitmq 客户端连接已经断开了,这会导致同一个执行时间比较久的任务不断重复消费而且每次都无法成功发送 ack 消息。

这种情况下,添加对执行结果的 redis 缓存,每次执行消费任务时先检查结果是否已经存在(由唯一键来确定是同一个任务),每次执行完消费任务将结果添加进 redis 缓存再发送 ack 消息,这样来避开同一个执行时间比较久的任务不断重复消费。

相关推荐
彤银浦31 分钟前
Python学习过程记录1
python·学习
学步_技术39 分钟前
Python编码系列—Python代理模式:为对象赋予超能力的魔法
开发语言·python·代理模式
浪里小白龙591 小时前
分布式Id生成策略-美团Leaf
分布式
Midsummer啦啦啦1 小时前
网址匹配正则表达式(python实现)
开发语言·python·正则表达式
面包会有的,牛奶也会有的。1 小时前
python测试开发---css基础
css·python
吃面不喝汤661 小时前
深入探讨 Flask、Gunicorn、Gevent 与 RecursionError:事件循环与 Monkey Patching 的正确使用
python·flask·gunicorn
ACRELKY1 小时前
分布式光伏充换电站相关建议
分布式
C—328G1 小时前
flask
后端·python·flask
web安全工具库1 小时前
深入理解Python中的时间表示:Unix时间点、毫秒和微秒,以及time模块
开发语言·python·unix
闲人编程1 小时前
Elasticsearch 单机和集群环境部署教程
python·elasticsearch·部署·集群·单机