用 xxl-job 多年,有没有想过:它为啥能准时调度?还不高频查库?巧妙的设计思路能套用到自己项目
朋友们应该很多人都使用 xxl_job 作为自己的任务调度器不知道大家有没有思考一个问题xxl_job的任务是从后台配置的调度时间可以随意定义并没 整10分、整5分 这种规定也就是说每一秒都有可能有要调度的任务而任务又是持久化到数据库里的那么xxl_job是怎么实现任务都能准时调度的难道每秒查询一次数据库开始我也没搞明白查看了源码才明白了创作者思路的精妙之处做了整理跟大家分享。| 方案描述有3个很重要的类JobScheduleHelper、RingThread 和 JobTriggerPoolHelper。JobScheduleHelper定时任务助手它在最近的5秒的整数倍时间点开始执行每隔5秒钟执行一次(可以修改)查询数据库读取已过期和未来5秒要执行的任务精妙之处在这里如果该执行了就交给 JobTriggerPoolHelper 立即执行如果还没到时间则放入时间轮。RingThread时间轮处理线程它在最近的整秒点开始执行每隔1秒执行一次每次都是从时间轮里取出当前秒需要执行的任务集合交给 JobTriggerPoolHelper 立即执行。这里执行频率虽然很高但是从Map里取不查询数据库我认为这里还可以优化时间轮没有任务就把线程阻塞添加了新任务再唤醒。JobTriggerPoolHelper任务触发器它是调度任务的实际执行者收到请求立即调度。| 核心概念时间轮一个 ConcurrentHashMapInteger, ListIntegerkey是第几秒value是一个任务ID的集合。任务持久化任务存储在数据库表 xxl_job_info 里有字段 trigger_next_time下次调度时间每次执行的时候都会修改这个字段为了后面 scheduleThread 再循环的时候可以精确查询到。Nettyxxl_job分 Client 和 Dashboard 两者使用Netty进行高效交互。Netty确实非常棒很多优秀产品都使用Netty。悲观锁xxl_job的 Dashboard 可以集群部署就会出现同一时间多个节点都会查询未来5分钟要执行的job为了避免多个节点重复调度xxl_job采用了数据库悲观锁的思路对表xxl_job_lock里仅有的一条数据查询时加 for update如下图| 总结回头仔细梳理一下xxl_job的设计理念A、JobScheduleHelper、RingThread 和 JobTriggerPoolHelper三者互相配合既避免了高频访问数据库数据库压力不大还利用多线程杜绝了线程的阻塞这种巧妙的设计使得产品能稳定运行。B、利用数据库悲观锁实现了即使Dashboard集群部署任务也不会重复调用。有人会觉得这里可以用Redis来实现是可以用但为什么没有用呢我觉得是作者为了尽量让这个产品轻量化。上面两点特别是A我觉得是非常棒的思路仔细想想其实在很多地方都可以使用https://mp.weixin.qq.com/s/nqnTBcPN_rZRlyRY0CS2Fg

相关新闻

人才盘点落地工具

人才盘点落地工具

https://mp.weixin.qq.com/s/A8z7XldrFo-LZX4TkRnlCA

2026/7/5 6:50:19 阅读更多 →
实测才敢推AI论文平台,千笔ai写作 VS 学术猹,专科生专属写作神器

实测才敢推AI论文平台,千笔ai写作 VS 学术猹,专科生专属写作神器

随着人工智能技术的迅猛发展,AI辅助写作工具已经逐渐成为高校学生完成论文的重要帮手。尤其是在专科生群体中,面对毕业论文的压力,越来越多的学生开始借助AI工具提升写作效率、优化内容结构。然而,市场上的AI工具种类繁多&#xf…

2026/7/5 11:03:56 阅读更多 →
FLUX.1模型优化:YOLOv8目标检测在图像生成质量评估中的应用

FLUX.1模型优化:YOLOv8目标检测在图像生成质量评估中的应用

FLUX.1模型优化:YOLOv8目标检测在图像生成质量评估中的应用 1. 引言 在AI图像生成的实际应用中,我们常常遇到这样的问题:生成的图片看起来很美,但仔细一看却发现手部有六根手指,或者物体飘浮在半空中不符合物理规律。…

2026/7/5 3:37:29 阅读更多 →

最新新闻

基于Hermes Agent与Harness Engineering构建企业级AI Agent应用

基于Hermes Agent与Harness Engineering构建企业级AI Agent应用

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在实际企业级 AI 大模型应用开发中,将大语言模型(LLM)的能力稳定、可靠地集成到业务流程里&#x…

2026/7/5 11:05:18 阅读更多 →
基于协同过滤的SpringBoot+Vue商品推荐系统:从算法原理到工程实践

基于协同过滤的SpringBoot+Vue商品推荐系统:从算法原理到工程实践

这次我们来看一个基于协同过滤算法的商品推荐系统,这是一个典型的Java Web毕业设计/课程实践项目。项目采用SpringBoot Vue MySQL MyBatis的技术栈,实现了从用户行为数据采集到个性化商品推荐的全流程。对于正在学习Java后端开发、SpringBoot框架&…

2026/7/5 11:01:17 阅读更多 →
动作游戏开发:UE与Unity双引擎核心技术与实践指南

动作游戏开发:UE与Unity双引擎核心技术与实践指南

1. 动作游戏开发的核心预备知识体系作为从业十余年的游戏开发者,我经常被问到一个问题:"想开发一款UD(Unreal/Unity双引擎)动作游戏,应该从哪里开始准备?"这个问题看似简单,但实际上包…

2026/7/5 10:59:16 阅读更多 →
AI大模型API的CC攻击防御:构建多层算力防线与实战方案

AI大模型API的CC攻击防御:构建多层算力防线与实战方案

1. 项目概述:当AI算力成为攻击目标最近和几个做AI应用开发的朋友聊天,发现大家普遍遇到了一个头疼的新问题:自己辛辛苦苦搭建、调优的大模型API服务,上线没多久,访问量就异常飙升,服务器CPU和GPU瞬间拉满&a…

2026/7/5 10:57:16 阅读更多 →
Linux磁盘挂载:用UUID彻底解决盘符漂移,保障系统稳定

Linux磁盘挂载:用UUID彻底解决盘符漂移,保障系统稳定

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在服务器运维和日常开发中,给 Linux 系统挂载新硬盘是一项基础但至关重要的操作。很多朋友,尤其是刚接触 Linu…

2026/7/5 10:57:16 阅读更多 →
从零构建Coze多智能体应用:架构设计与工程实践详解

从零构建Coze多智能体应用:架构设计与工程实践详解

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在实际项目中,当我们需要构建一个能够处理复杂、多步骤任务的智能助手时,单一的逻辑处理单元往往会变得臃肿且…

2026/7/5 10:55:16 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻