技术栈
redis stream
hanchenxing
18 天前
redis stream
·
任务丢失
Celery任务神秘丢失:从Redis Stream兜底到消费组去重的实战Celery
周三凌晨,监控告警突然炸了:celery 队列积压任务数量从平时的 200 飙到 5000,但 worker 日志里没有任何异常,任务也没有进入 failed 状态。更诡异的是,部分任务执行了,但结果回调(比如写数据库)迟迟没触发。我们检查了 Redis 的 LLEN,发现列表长度在减少,但任务确实“消失”了——既没成功,也没失败。
hanchenxing
19 天前
幂等设计
·
redis stream
CeleryCelery任务重复执行排查:从Redis Stream消费组到幂等设计的实战
上周五深夜,我们的订单系统突然出现大量重复发货通知。排查日志发现,同一个订单的异步任务(Celery + Redis)在短短几秒内被执行了两次,且两次都成功调用了第三方物流API。更诡异的是,这个任务既没有设置重试,也没有人为触发。
hanchenxing
20 天前
任务队列
·
redis stream
CeleryCelery任务丢失排查:从原理到用Redis Stream兜底的实战
Celery是Python生态最流行的分布式任务队列,但不少新手在刚上手时都遇到过任务“神秘消失”的情况:日志没报错,任务却始终没执行。这往往不是Celery本身的问题,而是我们忽略了它的ack机制和消息持久化的默认行为。
我是有底线的