关于xxl-job线程复用导致的日志混乱问题

分布式任务调度系统实战:从IAR93B理念到Apache DolphinScheduler部署 分布式任务调度系统是现代数据处理架构的核心组件,它通过解耦计算资源与任务单元,实现大规模并发任务的高效编排与执行。其核心原理基于中心化调度模型,将任务状态持久化、依赖关系可视化,并支持动态扩缩容与故障恢复,从而解决了传统脚本管理中的资源混乱、状态丢失等痛点。在技术价值层面,这类系统显著提升了数据处理流水线的可靠性、可观测性与自动化水平,成为大数据平台、微服务架构中不可或缺的基础设施。典型应用场景包括ETL数据管道、定时报表生成、机器学习流水线以及微服务任务编排等。本文以IAR93B项目倡导的“炮多弹多”理念 阅读详情
环境

JDK 8

xxl-job:2.4.1

spring boot:2.3.6

问题描述

使用线程池执行定时任务时,会出现当前定时任务的日志中出现其他的定时任务的日志内容,如下图:

原因分析

在xxl-job中使用的是InheritableThreadLocal 来实现线程间的上下文传递,但是执行日志混乱问题。
参考issues:https://github.com/xuxueli/xxl-job/issues/3226

解决方式

可以使用阿里开发的TransmittableThreadLocal 来安全的传递线程间的参数

需要导入依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>transmittable-thread-local</artifactId>
    <version>2.5.0</version>
</dependency>

然后在 XxlJobContext 这个类中 找到:

private static InheritableThreadLocal<XxlJobContext> contextHolder = new InheritableThreadLocal<XxlJobContext>();

将其替换成:

private static TransmittableThreadLocal<XxlJobContext> contextHolder = new TransmittableThreadLocal<XxlJobContext>();

这样就可以解决线程复用时日志混乱问题了。

ps:我在使用xxl-job的时候还出现了定时任务使用线程池异步执行时日志不打印的问题,之前一直没找到解决方式和问题原因,但是使用这个工具之后日志又正常了,不知道和这个有没有关系

基于Spring Boot与MySQL的上机考试系统:从架构设计到防作弊实践 在软件开发领域,构建一个稳定、安全的在线考试系统是常见的业务需求。其核心原理在于通过合理的系统架构设计,实现用户管理、考试流程控制、试题管理与自动评阅等功能。Spring Boot作为Java生态中主流的后端框架,凭借其快速启动、自动配置和成熟的生态,为构建此类系统提供了坚实的技术基础。结合关系型数据库MySQL对事务的强支持和对复杂数据关系的良好表达,能够确保考试数据的一致性与完整性。这种技术组合在实现核心业务价值——即保障考试过程的安全、公平与高效——方面具有显著优势。其典型应用场景包括高校期末上机考试 阅读详情

相关推荐

【论文阅读1】机理引导的残差学习用于电池全生命周期状态监测 | Nature Communications

本文提出了一种机理引导的残差学习框架,用于提升电池全生命周期内荷电状态(SOC)和健康状态(SOH)的监测精度。该方法融合等效电路模型的先验知识与机器学习,设计了修正模型和补偿模型两种通用框架。实验验证表明,该方法在三种不同类型电池数据集上均表现出色,SOC和SOH估计误差较传统方法降低50%以上,且在未见工况下仍保持良好外推能力。模型具有强鲁棒性,在减少训练数据量和降低采样频率时性能稳定,并兼具物理可解释性。该框架无需离线测试和运行中校准,为电池安全监测提供了有效解决方案。

qq_21843433的博客 615

xxljob异步日志打印混乱问题分析与解决

xxljob异步方法日志打印混乱

m0_49440213的博客 1673

SAP-ABAP:SAP ABAP 深度解析:BAPI 从入门到精通 —— 原理、实战与自定义开发全指南

SAP ABAP BAPI 深度解析摘要 本文全面介绍了 SAP ABAP 中的 BAPI(业务应用程序编程接口)技术,涵盖以下核心内容: BAPI 定义与特点:BAPI 是 SAP 为业务对象提供的标准化编程接口,具有面向对象、封装业务逻辑、标准化错误处理和版本兼容性等特点。 BAPI 与 RFC 关系:所有 BAPI 都是 RFC,但需额外满足业务对象注册、标准化参数和错误处理等要求。 BAPI 核心作用:包括业务逻辑封装、系统集成、标准化错误处理、版本兼容和审计合规。 实战演示:通过创建销售订单的完整

baidu_35680696的博客 1032

XXJ-JOB 执行器 在线程池内日志输出错乱的问题

问题:最近在使用 xxl-job 时,执行器使用异步线程处理任务时,发现日志输出存错乱。第一次的日志能够正常打印到对应的log文件中,后面每次都会打印到最开始的日志文件中如下分析XxlJobHelper 源码:XxlJobContext 源码 :XxlJobContext 使用InheritableThreadLocal, InheritableThreadLocal主要用于子线程创建时,需要自动继承父线程的ThreadLocal变量,方便必要信息的进一步传递。

zero_fxj的博客 2170

车载测试面试题总结

首先确认是什么问题,如果是测试软件的问题就先确定自己的测试方法有没有问题,如果没有问题,那就是测试软件的问题,这时候就需要提bug 进行跟踪,(比如BCM测试的时候,先明确测试的输入,对输入)进行需求分析,然后设计测试用例,进行用例评审,评审完执行测试用例形成最终的版本,台架分为:hil(黑尔)台架,单个控制器的台架、整车台架、车身台架、动力系统台架等,主要验证其功能,或者实车无法满足的测试环境。这个人不可能一直,点击几千次或者多少次几个小时连续点击,人不可能一直在点。因为要模拟一下这个稳定性,

woaxiaoqing的博客 7813

ESP-Mesh-Lite vs ESP-Mesh:如何选择适合你的物联网组网方案?

本文深入对比了乐鑫ESP-Mesh-Lite与ESP-Mesh两种物联网组网方案的核心差异。重点解析了ESP-Mesh-Lite分布式协议栈架构的优势,即每个节点拥有独立IP,可直接访问外部网络,极大简化了应用层开发。文章从网络架构、性能、开发体验及适用场景等多维度进行分析,为开发者根据项目需求(如分布式数据采集、智能家居或集中控制网络)选择最合适的方案提供了清晰的决策框架。

pluto的博客 816

xxl-job线程池异步出现日志打印混乱

只要设置了这一行代码,当你设置的核心线程数使用完毕,他不会把日志输出到历史线程对应的日志里。异步调用方法的时候 传入XxlJobContext.getXxlJobContext()并没有作用,因为xxl-job会复用线程,所以永远都是一个值,xxl-job异步的小坑.

qq_38197010的博客 465

Unity游戏开发客户端Unity基础

Unity游戏开发客户端面经 之 Unity 篇

Sea3752的博客 2万+

xxl-job使用线程池多线程日志打印问题

原因:spring 在扫描bean的时候会扫描方法上是否包含@Async注解,如果包含,spring会为这个bean动态地生成一个子类(即代理类,proxy),代理类是继承原来那个bean的。此时,当这个有注解的方法被调用的时候,实际上是由代理类来调用的,代理类在调用时增加异步作用。然而,如果这个有注解的方法是被同一个类中的其他方法调用的,那么该方法的调用并没有通过代理类,而是直接通过原来的那个bean,所以就没有增加异步作用。有人提出将注解放到类上,但是我试了下放在类上本类调用还是失效的。

qq_30920479的博客 7303

微服务架构的实施与挑战:前提判断、三种落地模式、收益兑现与风险应对

微服务是用运维复杂度换取演进自由度的一笔交易,是否划算取决于系统复杂度是否越过生产率曲线的交叉点。本文先给出实施前提:微服务溢价的六项成本、四项前置能力、康威定律与领域边界,并附就绪度自检表;再拆解三种落地模式:以绞杀者为代表的渐进剥离与数据五级迁移、以模块化单体起步的绿地建设、新旧并行的混合式集成;随后逐项审视六大技术优势与组织收益的兑现条件,系统梳理分布式谬误、分布式单体、Saga与幂等、弹性容错、可观测性、契约测试等挑战与对策,最后给出四阶段落地路线、DORA四项度量与常见反模式清单。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

工艺边与定位孔设计经验规则总结

工艺边是在SMT焊接时,为了PCB和导轨接触预留的PCB边。工艺边和PCB的接触部分一般需要开槽,或者使用邮票孔,以方便后期去除工艺边。

fydar的博客 1984

xxl-job线程池异步任务参数、日志打印错误

平时xxl-job大部分人使用都是单线程的方式,即执行一次任务由一个主线程执行。这里记录一下,xxl-job在线程池异步(多租户场景下)出现项目启动后,第一次调用之后的调用(如第二次、三次..),其传入的任务参数以及日志打印出现问题:任务参数都是第一次调用的,日志打印都打印在第一次调用的log中。

ns3405453840的博客 2020

人工智能智能体研究综述:从理论架构到前沿应用

AI Agent,即人工智能智能体,是指能够在特定环境中自主感知、推理、决策并执行行动以实现特定目标的智能系统[1]。自主性反应性主动性(Pro-activeness)和社会性fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;AI Agent核心特征自主性 Autonomy反应性 Reactivity主动性 Pro-activeness。

nmdbbzcl的博客 902

《互联网大厂Java求职者面试:核心知识大考验》

核心参数有corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory和handler。corePoolSize是核心线程数,maximumPoolSize是最大线程数,keepAliveTime是线程存活时间,unit是时间单位,workQueue是任务队列,threadFactory是线程工厂,handler是拒绝策略。:有failover、failfast、failsafe、failback、forking等。

hjc_1732的博客 922

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

矩阵系统定时任务调度架构设计与容错机制实现 —— 星链引擎实战

矩阵系统日常承载着海量账号内容定时发布、数据定时采集、账号状态巡检、自动化运维等周期性任务,传统单机定时任务存在单点故障、任务重复执行、集群任务争抢、超时丢失等诸多问题。本文结合星链引擎矩阵系统线上大规模落地经验,分析矩阵业务场景下定时调度的核心痛点,对比主流分布式调度方案,给出轻量化可落地的调度架构,同时讲解任务分片、错峰执行、失败重试、熔断容错等核心实现,工程性强、无敏感内容,完全适配 优快云 发布审核规范。定时任务调度是矩阵系统自动化运营的核心基石,绝非简单配置几个 CRON 表达式即可。

2601_95788224的博客 531

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

互联网大厂Java面试实录:严肃面试官VS搞笑水货程序员谢飞机

本文内容模拟一次互联网大厂Java岗位的面试过程,面试官严肃提问,求职者谢飞机以幽默风趣的方式回答,简单问题答得清晰明了,复杂问题则回答混乱,体现出真实的求职场景。

weixin_51453937的博客 306

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Server定时器设计:从SleepEx缺陷到高并发场景下的专业方案

定时器是计算机系统中实现周期性任务调度的核心机制,其原理基于操作系统的时间中断和任务队列管理。在服务器端开发中,定时器的技术价值体现在保障服务稳定性、提升资源利用率和确保任务执行精确性上。面对高并发场景,传统Sleep方案因累积误差和线程阻塞问题,难以满足Server对时间精度与可扩展性的要求。现代方案如时间轮算法通过环形队列实现O(1)复杂度调度,而ScheduledExecutorService和PeriodicTimer等框架组件提供了更可靠的定时任务管理。这些技术广泛应用于心跳检测、缓存刷新、数据同

weixin_33725515的博客 463

从JMeter工具链到自动化性能测试平台:架构设计与实战经验

性能测试是软件质量保障的关键环节,其核心在于模拟真实用户负载,评估系统在高并发下的稳定性、扩展性和响应能力。传统基于JMeter等工具的手工测试模式,存在流程割裂、资产难以沉淀和资源调度不灵活等问题。通过平台化建设,可以将脚本管理、场景编排、资源调度、监控采集和报告分析等全流程标准化与自动化,从而显著提升测试效率和结果可靠性。在工程实践中,引入Kubernetes实现弹性资源调度,利用消息队列解耦实时数据流,并结合时序数据库进行监控数据存储与分析,是构建稳定高效性能平台的关键技术。该平台能有效服务于持续集成

cuankuangzhong6373的博客 381

分布式与微服务:从定义、核心难题到落地选型

在系统设计中,分布式与微服务是常被混淆却又本质不同的两个概念。分布式描述的是多个节点通过网络协作完成任务的运行形态,关注通信、一致性、容错与协调;微服务则是一种围绕业务能力拆分的架构风格,追求独立开发、部署与故障隔离。理解两者差异,有助于避免把“拆服务”等同于“做分布式”,也能更合理地进行技术选型。实践中,单体应用多实例部署即可构成分布式系统,而微服务则需配套注册中心、网关、配置中心等基础设施,并处理分布式锁、分布式事务等难题。本文从定义与原理出发,结合工程落地场景,梳理了从单体到微服务的演进路径与架构决策

weixin_34082854的博客 387

Redis 知识体系(文档型 NoSQL)

本文深入解析Redis八大基础数据结构及其底层编码实现,涵盖String、List、Set、ZSet、Hash、Geo、Bitmap、HyperLogLog和Stream等核心结构。通过源码级分析,揭示了SDS、Ziplist、Dict等底层组件的设计原理,并详细探讨了Redis的高性能IO模型、持久化机制(RDB/AOF/混合模式)、内存管理策略及高可用架构(主从/哨兵/Cluster)。 重点剖析了Redis在工程实践中的典型问题与优化方案,包括缓存穿透/击穿/雪崩的解决方案、分布式锁的完整实现(含Re

专注 Java 后端开发,分享基础语法、JVM、并发、Spring 全家桶、微服务、分布式、性能优化等实战干货。坚持输出高质量技术笔记,用简单语言讲清复杂原理,助力每一位 Java 开发者稳步进阶。 794

企业级微服务开发利器:HZERO平台核心架构与实战指南

微服务架构通过将单体应用拆分为独立、自治的服务,提升了系统的灵活性、可扩展性和开发效率,已成为现代企业级应用的主流技术选型。其核心原理在于服务解耦、独立部署和分布式通信。这一架构模式的技术价值在于支持快速迭代、技术异构和弹性伸缩,尤其适用于复杂业务场景和中大型团队协作。然而,微服务也带来了服务治理、配置管理、链路追踪和统一权限控制等新的复杂性挑战。HZERO平台正是针对这些企业级开发痛点,提供了一套标准化的微服务应用平台解决方案。它深度集成了身份与访问管理(IAM)、多租户(SaaS)架构、消息调度等通用能

cuanwei9356的博客 639

SpringBoot医疗排班系统实战:规则引擎、WebSocket与Docker部署详解

在医疗信息化领域,医护人员排班管理是提升医院运营效率的关键环节。其核心原理在于将复杂的排班规则(如班次类型、资质匹配、工作时长限制等)抽象为可配置的计算机逻辑,通过规则引擎驱动自动化排班。这一技术能显著降低人工协调成本,减少排班错误,并提升排班公平性。典型的应用场景包括医院、诊所等医疗机构,用于实现排班过程的可视化、自动化与灵活调整。本文基于SpringBoot框架,结合MyBatis-Plus、WebSocket、Docker等技术栈,深入剖析了如何构建一个规则驱动的智能排班系统,其中重点探讨了排班规则引

weixin_34080951的博客 616

订单状态机从建模到落地:状态流转、并发控制与幂等设计

状态机是一种描述对象状态迁移的数学模型,在软件工程中常用于管理复杂业务流程的状态流转。它通过枚举状态、定义事件和守卫条件,将散落的业务逻辑抽象为可校验的流转规则,提升系统的可维护性与可追溯性。在分布式系统和高并发场景下,状态机设计面临持久化、并发控制、幂等处理和异常补偿等核心挑战。状态机广泛应用于订单、工单、审批等交易类系统,是保证数据一致性和流程合规的关键架构手段。本文以订单系统为例,从状态建模、落库策略、代码实现到并发与幂等机制,系统讲解状态机的完整落地路径,帮助开发者构建高可靠的业务状态管理方案。

weixin_30247307的博客 361

第四篇 Agent智能体开发专项

本篇定位:AI 应用开发面试第二核心考点,占比约 30%,覆盖从单 Agent 到多 Agent、从框架原理到生产落地的全链路能力。中高级岗考察深度逐年提升,重点掌握核心原理、工程落地、问题排查与架构设计能力。

weixin_45526015的博客 294

xxljob 里面 InheritableThreadLocal详解,XxlJobContext类的详解

xxljob

一天不写代码难受的博客 968

xxl-job,彻底告别手动配置任务!

项目的完整代码已经传到了我的github上,小伙伴们如果有需要的可以自行下载,也欢迎来点个star支持一下~

wcj_java的专栏 805
上一篇: Spring boot集成xxl-job以及动态任务配置
下一篇: 关于FTP未设置工作模式导致无法读取到文件问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值