Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >记录一次celery消费失败的问题排除

记录一次celery消费失败的问题排除

作者头像
Ewdager
发布于 2021-02-04 08:00:13
发布于 2021-02-04 08:00:13
1.2K0
举报
文章被收录于专栏:Gvoidy备份小站Gvoidy备份小站

0x00

昨天发完UAT后,今天惯例点进UAT看看服务的情况,突然发现flower监测的celery竟然有半数以上的失败!

开始排查

马上查看这个queue的日志,确实是有一堆失败的。

当前这个queue的业务是从redis里把数据取出来写入minio里落盘,但是涉及的数据均为几十k的数据,讲道理不应该会失败。

查询得到这几个失败的任务redis key的插入时间为2020-12-28 15:17:48,而消费的时间却是2020-12-29 17:17:21

这里就出现了一个问题,业务逻辑上当一个key塞入redis中后,马上会把落盘任务推到队列里,一般来说不会积攒这么久。但是此处竟然积攒到了一天以上才开始消费,而此处也因为我们设置的redis单key最大过期时间为24小时,所以导致落盘任务失败,并且数据丢失了。

发现问题

那么到底是什么任务积攒在队列里积攒了这么久。。?经过和同事分析发现,因为此次发版前还没有上线深度学习的功能,所以只分配了两个通用消费者。当启动几个深度学习任务时,这么点消费者完全没有办法应付之后的任务了,导致简单的几十k数据落盘任务都需要积攒天级以上的时间才能完成。

所以,深度学习任务单独开个queue分流不阻塞其他任务,就解决了此次问题。。(感觉好蠢,浪费了一个上午

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
任务队列神器:Celery 入门到进阶指南
celery是一个简单,灵活、可靠的分布式任务执行框架,可以支持大量任务的并发执行。celery采用典型生产者和消费者模型。生产者提交任务到任务队列,众多消费者从任务队列中取任务执行。
Python编程与实战
2021/03/24
19.4K1
任务队列神器:Celery 入门到进阶指南
ELK 背压浅探
我们在日常使用 ELK 链路的时候,经常会碰到一个问题,由于链路涉及的组件较多,一旦当其中某些组件出现问题,就会出现“事件风暴”,如果没有做好相关的告警或者资源管控,很可能会使链路发生崩溃。
布鲁斯鱼
2022/11/02
9760
ELK 背压浅探
深度解读 RocketMQ 存储机制
RocketMQ 实现了灵活的多分区和多副本机制,有效的避免了集群内单点故障对于整体服务可用性的影响。存储机制和高可用策略是 RocketMQ 稳定性的核心,社区上关于 RocketMQ 目前存储实现的分析与讨论一直是一个热议的话题。近期我一直在负责 RocketMQ 消息多副本和高可用能力的建设,和大家分享下一些有趣的想法。
从大数据到人工智能
2022/09/08
7720
面试官:生产环境中使用RocketMQ常见问题
然后关于3这个环节,通常MQ存盘时都会先写入操作系统的缓存page cache中,然后再由操作系统异步的将消息写入硬盘。这个中间有个时间差,就可能会造成消息丢失。如果服务挂了,缓存中还没有来得及写入硬盘的消息就会丢失。
程序员子龙
2023/11/26
1.4K0
面渣逆袭:RocketMQ二十三问
选择中间件的可以从这些维度来考虑:可靠性,性能,功能,可运维行,可拓展性,社区活跃度。目前常用的几个中间件,ActiveMQ作为“老古董”,市面上用的已经不多,其它几种:
三分恶
2022/05/11
1.3K0
面渣逆袭:RocketMQ二十三问
Python面试题之Python面试题汇总
(1)与java相比:在很多方面,Python比Java要简单,比如java中所有变量必须声明才能使用,而Python不需要声明,用少量的代码构建出很多功能;(高效的高级数据结构)
Jetpropelledsnake21
2018/08/01
11.7K0
Python面试题之Python面试题汇总
10分钟搞懂!消息队列选型全方位对比
导语 | 消息队列是分布式系统中重要的中间件,在高性能、高可用、低耦合等系统架构中扮演着重要作用。本文对Kafka、Pulsar、RocketMQ、RabbitMQ、NSQ这几个消息队列组件进行了一些调研,并整理了相关资料,为业务对MQ中间件选型提供参考。 一、概述 消息队列是分布式系统中重要的中间件,在高性能、高可用、低耦合等系统架构中扮演着重要作用。分布式系统可以借助消息队列的能力,轻松实现以下功能: 解耦,将一个流程的上游和下游拆开,上游专注生产消息,下游专注处理消息。 广播,一个上游生产的消息轻松被
腾讯云开发者
2022/02/17
14.5K0
基础总结(系统设计/微服务/中间件)
注: 此系列内容来自网络,未能查到原作者。感觉不错,在此分享。不排除有错误,可留言指正。
fliter
2023/06/18
3030
基础总结(系统设计/微服务/中间件)
redis面试必会6题经典_redis 面试
最近囧辉发现自己的 Java 学习交流群 里有不少同学已经“悄悄”的入职了携程、美团、阿里菜鸟等大厂。
全栈程序员站长
2022/11/17
1.8K0
redis面试必会6题经典_redis 面试
秋招真实记录:紧张的337小时,我终于等来了字节跳动offer(Android岗)
坐标北京,某211本科毕业生,之前学校活动有去过字节跳动公司总部参观,所以一直以来就蛮想进入字节工作的,被字节的企业文化和工作氛围所影响。字节作为发展速度最快的互联网公司,旗下的很多产品的用户都比肩BAT了,所以自己也算是字节的死忠粉了。
Android技术干货分享
2020/11/20
7790
秋招真实记录:紧张的337小时,我终于等来了字节跳动offer(Android岗)
(三万字长文)面试不怂之redis与缓存大全
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/04
3680
Dubbo面试题(2020最新版)
Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。文章持续更新中…
Java架构师必看
2020/04/10
8.9K0
Redis数据倾斜与JD开源hotkey源码分析揭秘
本文介绍了Redis数据倾斜的相关概念,并讲解了Redis数据倾斜的原因以及应对方案,对热点问题进行了深入探讨;其次从client端、worker端、dashboard端全方位讲解了热key问题的解决方案,详细解析了JD开源项目hotkey,读者可以从本文中学到相关的方法论及其对应的落地方案。
京东技术
2023/01/05
1.1K0
Redis数据倾斜与JD开源hotkey源码分析揭秘
kafka架构原理最全解释
答:Kafka是一个发布 - 订阅的消息队列中间件。这个消息传递应用程序是用“scala”编码的。 kafka 支持的协议是防AMQP协议,支持集群,负载均衡和动态扩容(zk), 不支持事务;
Tim在路上
2020/08/04
2.9K0
硬卷 NoSQL 数据库系列(六):MongoDB 存储引擎 WiredTiger 技术详解
前面介绍了 MongoDB 的安装与基础的 CURD 操作、索引与聚合、基本使用、常用管理命令与授权认证等相关的知识点。今天我将详细的为大家介绍 MongoDB 存储引擎 WiredTiger 相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!
民工哥
2023/08/25
2.6K0
硬卷 NoSQL 数据库系列(六):MongoDB 存储引擎 WiredTiger 技术详解
想进大厂?50个多线程面试题,你会多少?(一)
最近看到网上流传着,各种面试经验及面试题,往往都是一大堆技术题目贴上去,而没有答案。
程序员鹏磊
2018/03/18
3K5
想进大厂?50个多线程面试题,你会多少?(一)
Java算法面试题
1. 自我介绍 2,介绍一下项目 3,MapReduce中容易发生数据倾斜,是怎么产生的,如何处理? 4,Hive数据倾斜怎么产生的? 怎么处理? 5,Spark 数据倾斜怎么产生,如何处理? 6. 大表和小表如何进行查询? 7.说说HashMap? 8.hashMap使用什么样的数据结构?如何扩容? 9.hashMap线程安全吗?和它对应的hashTable呢? CurrentHashMap呢? 10.HashTable 和CurrentHashMap 的区别? 12.用过哪些设计模式? 讲讲动态代理模式 和单例模式 13 写一下单例模式,在多线程情况下呢? 14 设计一个栈,包含出栈,入栈,是否为空等 15 求两个大数相加,每个数100位长度。
全栈程序员站长
2022/11/15
8250
Java算法面试题
2020年终总结:美团+滴滴+网易+拼多多Java后端面经总结,最终上岸网易!
今年秋招较以往是要难了一些,但也不是那种遥不可及的地步。对于准备充分的人来说总是offer不断。我接触Java也不到1年,但是只要好好的准备,两个月完全够应付大部分的公司了。希望看到这篇文章的同学能稳住心态,踏实刷题。坚持几个月定能收获自己满意的offer。
Java程序猿
2021/01/04
1.1K0
2020年终总结:美团+滴滴+网易+拼多多Java后端面经总结,最终上岸网易!
面渣逆袭:Redis连环五十二问,图文详解,这下面试稳了!
大家好,我是老三,面渣逆袭系列继续,这节我们来搞定Redis——不会有人假期玩去了吧?不会吧?
三分恶
2022/05/11
1.3K0
面渣逆袭:Redis连环五十二问,图文详解,这下面试稳了!
Python 【面试强化宝典】
四大数据类型的常用方法 列表常用方法 #1. append 用于在列表末尾追加新的对象 a = [1,2,3] a.append(4) #the result : [1, 2, 3, 4] #2. count 方法统计某个元素在列表中出现的次数 a = ['aa','bb','cc','aa','aa'] print(a.count('aa')) #the result : 3 #3. extend 方法可以在列表的末尾一次性追加另一个序列中的多个值 a = [1,2,3] b = [4
IT茂茂
2020/04/30
1.3K0
Python 【面试强化宝典】
相关推荐
任务队列神器:Celery 入门到进阶指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档