【Celery】任务Failure或一直超时Pending
编写背景
task进入队列后,部分任务出现Failure或者一直Pending,且业务代码没有报错。
运行环境
celery配置
from celery import Celery
broker = 'redis://:@127.0.0.1:6379/1'
backend = 'redis://:@127.0.0.1:6379/2'
app = Celery(broker=broker,backend=backend,include=['celery_task.tasks'])
task.py
from celery_task.celery import app
from celery.result import AsyncResult
@app.task
def your_task():# your taskpass@app.task
def check_task(task_id):# task statusstatus = AsyncResult(task_id).statusreturn status
celery部署方式
docker 部署
version: '3'
services:services_name: testimage:test#..... 省略
celery:# ......省略command: celery --app=celery_task worker -P gevent -l INFO
服务单台机器部署如上所示,当然,这里部署了多台机器。就是说,有多个celery worker能接收任务。
任务以redis为支撑,进入队列的任务。部分任务通过AsyncResult查询结果为Failure,且一直无法重试成功。
解决思路
初步怀疑任务执行失败的原因如下:
1.业务代码存在BUG,出现报错
2.celery任务负载过大,任务在队列等待时间过长。
3.redis 库号有其它服务在使用
经过日志排查剔除了 1 跟2。此时深度怀疑,有其他Celery服务用了跟这个队列一样的redis库号。
验证:
通过 CLIENT LIST查看所有连接redis,这里为了方便进行编码
import redis
# 连接Redis服务器
r = redis.Redis(host='127.0.0.1', port=6379, db=1)# 获取客户端连接列表
client_list = r.client_list()
a = []
c = []
# 打印连接列表
for client in client_list:ip = client['addr'].split(":")[0]db = client["db"]res = ip+":"+db# 查看与celery队列同一库号的所有ip连接if res not in c and db=="1":c.append(res)if res not in a and db=="2":a.append(res)
# 这里结果不做展示print(a,c)
此时发现,除了本服务的ip,还有另外的IP一样用了同样的库号。大可断定,进入队列的任务,是被其他worker分走了,所以任务一直Failure。
看下面一张图就明朗了:

这里假设redis分库为4个。然后有两个Celery在运行,但是里面的Worker是不一样的,两个Celery却用了同一个库号。因此,本应在Celery A执行的任务,会被分配到Celery B的worker上执行。被分配到Celery B 的任务就会Failure。
相关文章:
【Celery】任务Failure或一直超时Pending
编写背景 task进入队列后,部分任务出现Failure或者一直Pending,且业务代码没有报错。 运行环境 celery配置 from celery import Celery broker redis://:127.0.0.1:6379/1 backend redis://:127.0.0.1:6379/2 app Celery(brokerbroker,backendbackend,includ…...
【严重】VMware Aria Operations for Logs v8.10.2 存在反序列化漏洞(CVE-2023-20864)
漏洞描述 VMware Aria Operations for Logs前身是vRealize Log Insight,VMware用于处理和管理大规模的日志数据产品。 VMware Aria Operations for Logs 8.10.2版本中存在反序列化漏洞,具有 VMware Aria Operations for Logs 网络访问权限的未经身份验…...
java实现乘法的方法
我们都知道,乘法运算的核心思想就是两个数相乘,如果能将乘法运算转化成一个加数的运算,那么这个问题就很容易解决。比如我们要实现23的乘法,首先需要定义两个变量:2和3。我们将这两个变量定义为一个变量:2x…...
SSD目标检测
数据集以及锚框的处理 数据集: 图像:(batch_size , channel , height , width) bounding box: (batch_size , m , 5) m: 图像中可能出现的最多边界框的数目 5: 第一个数据为边界框对应的种…...
SpringBoot项目结构及依赖技术栈
目录 1、pom.xml文件配置说明 2、SpringBoot项目结构说明 3、入门案例关键配置说明 🌈 前面我们学习了SpringBoot快速入门案例,本节我们通过POM文件和项目结构分析两部分内容了解下关于SpringBoot的一些配置说明,以便全面了解SpringBoot项…...
crash怎么分析kdump core文件
kdump是Linux内核的一种机制,可以在出现系统崩溃时自动生成一个内存转储文件(core file),也称为crash dump。这个core文件包含了系统当时的内存状态和各个进程的调用栈信息,可以帮助分析和定位崩溃的原因。 要分析kdump core文件,…...
微内核与宏内核的区别和联系
微内核与宏内核的区别和联系 一、什么是内核?二、微内核和宏内核的区别 一、什么是内核? 内核是计算机操作系统的核心程序,它负责整个OS功能的调控。 二、微内核和宏内核的区别 微内核(Micro)宏内核(Monolithic/ Macro)地址空间内核服务和用…...
都什么年代了,还在用Excel和ACCESS做应用系统?快来学Eversheet
表格用的越久,就越头疼 稍微有规模的企业,各种表格都会多如牛毛,一堆堆的,有时候这里一张,那里一张,容易整乱,更容易丢失。不管你是用WPS还是用Excel,有些问题你还是依旧解决不了。…...
【JAVAEE】JAVA数据库连接(JDBC)
1.什么是JDBC? Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsyste…...
Nestjs全网最佳翻译-概况-守卫-Guards
守卫 带上装饰器 Injectable() 并实现了 CanActivate 接口的类,就是守卫。 守护只做一件事情。他们根据运行时的某些条件(如权限、角色、ACL等)来决定一个给定的请求是否会被路由处理程序处理。这通常被称为授权。在传统的Express应用程序中…...
【软考网络管理员】2023年软考网管初级常见知识考点(3)- 网络体系结构
【写在前面】也是趁着五一假期前再写几篇分享类的文章给大家,希望看到我文章能给软考网络管理员备考的您带来一些帮助,5月27号也是全国计算机软件考试统一时间,也就不用去各个地方找资料和代码了。紧接着我就把我整理的一些资料分享给大家哈&…...
javascript正则表达式大括号、中括号、小括号的作用以及应用场景
在JavaScript正则表达式中,大括号 {}、中括号 [] 和小括号 () 都有不同的作用和应用场景。 大括号 {} 在正则表达式中,大括号 {} 表示重复次数。以下是一些常见的应用场景: {n}:精确匹配出现的次数,例如 \d{3} 匹配…...
5年测试老鸟总结,自动化测试的实施到落地,看这一篇足够...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…...
通达信顾比倒数线指标公式,信号不漂移
顾比倒数线是由技术派大师戴若顾比发明的,该指标利用三个重要的价格来判断入场或离场时机,可用于盘后制定下一个交易日的操作计划。此外,顾比倒数线还可以用于补充验证其他指标。 在编写顾比倒数线选股公式之前,需要先了解顾比倒…...
网络安全: CIDR无类别路由
网络安全: CIDR无类别路由 CIDR是无类别路由,出现CIDR的原因是因为ipv4的地址被使用完客,CIDR的出现暂缓了ipv4用完的速度。 原本的ipv4很刻板,网络号分成8位,16位,24位作为掩码,也就是 xxx.0…...
NetMQ | 发布订阅时使用含通配符的Topic
NetMQ | 发布订阅时使用含通配符的Topic 文章目录 NetMQ | 发布订阅时使用含通配符的Topic前言通配符如何使用通配符通配符的作用结束语 前言 今天我来介绍一下NetMQ发布订阅时如何使用含通配符的Topic,让我们能够更加灵活地订阅消息。 什么是Topic? 在NetMQ中&am…...
行为型模式-模板方法模式
模板方法模式 概述 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关…...
IPsec中IKE与ISAKMP过程分析(快速模式-消息1)
IPsec中IKE与ISAKMP过程分析(主模式-消息1)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息2)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息3)_搞搞搞高傲的博客…...
PostgreSQL 数据类型转换
各种数据类型(日期/时间、integer、floating point和numeric)转换成格式化的字符串及反过来从格式化的字符串转换成指定的数据类型,在实际操作中经常遇到。下面总结了一些常用的函数。 日期操作函数 函数返回类型描述实例to_char(timestamp…...
【Java笔试强训 1】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🦾🦾🦾 目录 一、选择题 二、编程题 🔥组队竞…...
【技术解析】SimpleNet:用极简网络架构革新工业图像异常检测
1. 工业图像异常检测的现状与挑战 工业生产线上的质检环节一直是个让人头疼的问题。想象一下,你站在一条每分钟生产上百件产品的流水线旁,需要肉眼检查每个产品表面是否有划痕、凹陷或污渍——这几乎是不可能完成的任务。传统计算机视觉方法在这个领域已…...
终极指南:NanoVG渲染管线深度解析与抗锯齿技术实战
终极指南:NanoVG渲染管线深度解析与抗锯齿技术实战 【免费下载链接】nanovg Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. 项目地址: https://gitcode.com/gh_mirrors/na/nanovg NanoVG是一款基于OpenGL的轻量级抗锯…...
手把手教你学<基于 Linux 的 NPU 协处理器固件开发>专栏第1章 入门:
1.2 典型 AI 芯片架构:主核 Linux + NPU 协处理器 在上一节我们明确了NPU是依附于Linux主核的专用AI协处理器,属于主从配合的工作模式,这一节我们就深入拆解端侧AI芯片最主流的“Linux主核+NPU协处理器”异构架构。结合大家日常接触的代码仓库管理、编译脚本执行、固件烧录…...
OpenCore Legacy Patcher实用指南:让老旧Mac焕发新生
OpenCore Legacy Patcher实用指南:让老旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 随着苹果不断推进macOS系统更新,…...
终极指南:用OpenCore Legacy Patcher让旧Mac焕发新生的5个简单步骤
终极指南:用OpenCore Legacy Patcher让旧Mac焕发新生的5个简单步骤 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为手中的旧款Mac无法…...
Spring Boot 实现网络限速:让流量“收放自如”
Spring Boot 实现网络限速:让流量“收放自如” 一、为啥要网络限速? 在当今这个数字化时代,网络服务就像我们生活中的水电一样不可或缺,而网络限速则是保障这些服务稳定、高效运行的关键一环。它能确保在各种复杂的网络环境下&…...
AI 开发实战:实验和试点项目怎么记录,才不会做完就散
AI 开发实战:实验和试点项目怎么记录,才不会做完就散 一、这个问题为什么值得专门拿出来做? 在 AI 工程落地里,真正拖慢团队的往往不是模型本身,而是流程和协作方式没有跟上。 围绕“实验和试点项目怎么记录࿰…...
有线/无线(空口)抓包过程及其分析
一、如何判断该抓有线包,还是无线包层级问题类型抓包位置L1/L2(无线)连不上、掉线、弱信号无线抓包L2(有线)VLAN错误有线抓包L3(IP)DHCP失败有线抓包L4(传输)丢包、重传有…...
造相Z-Image文生图模型v2:3步搭建你的专属AI画师
造相Z-Image文生图模型v2:3步搭建你的专属AI画师 1. 为什么选择Z-Image v2作为你的AI画师 在众多文生图模型中,造相Z-Image v2以其独特的优势脱颖而出。作为阿里通义万相团队开源的高性能模型,它原生支持768768及以上分辨率的高清图像生成&…...
intv_ai_mk11多场景落地:覆盖内容运营、教育辅助、行政办公等6大方向
intv_ai_mk11多场景落地:覆盖内容运营、教育辅助、行政办公等6大方向 1. 模型介绍与核心能力 intv_ai_mk11是一款基于Llama架构的中等规模文本生成模型,特别适合处理通用问答、文本改写、解释说明和简短创作等任务。这个模型已经完成了本地部署优化&am…...
