Quartz定时任务持久化(服务重启后自动恢复)

news/2025/12/9 14:05:47/文章来源:https://www.cnblogs.com/foury/p/19326342

Quartz 定时任务持久化(重启后自动恢复)

声明: 本文内容由 ChatGPT 协助生成,仅作为个人学习与记录之用。

Quartz 默认使用 RAMJobStore(内存存储),服务重启后任务会丢失。
要让定时任务在重启后仍然有效,必须启用:JDBCJobStore(数据库持久化)

本文说明如何在 Spring Boot 项目中配置 Quartz 持久化,使任务存入数据库并在重启后自动恢复。

1. 启用 Quartz 持久化(application.yml)

示例配置:

spring:quartz:job-store-type: jdbc   # 启用数据库持久化jdbc:initialize-schema: always   # 第一次启动自动建表,之后改为 neverproperties:org.quartz.scheduler.instanceName: QuartzSchedulerorg.quartz.scheduler.instanceId: AUTOorg.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTXorg.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegateorg.quartz.jobStore.useProperties: falseorg.quartz.jobStore.tablePrefix: QRTZ_org.quartz.threadPool.threadCount: 10

注意:

  • initialize-schema: always 只在第一次启动时用

第二次以后必须改为 never,避免自动重建表导致任务丢失。

  • 数据库需先创建好,Quartz 会自动建表(第一次)。

2. 初始化数据库(Quartz 表结构)

Quartz 内置表结构 SQL,可在 quartz-x.x.jar 中找到:

路径:

org/quartz/impl/jdbcjobstore/

根据数据库选择:

数据库 SQL 文件
MySQL tables_mysql_innodb.sql
PostgreSQL tables_postgres.sql
Oracle tables_oracle.sql

执行后会生成 11 张表,例如:

  • QRTZ_JOB_DETAILS

  • QRTZ_TRIGGERS

  • QRTZ_CRON_TRIGGERS

  • QRTZ_SIMPLE_TRIGGERS

  • QRTZ_FIRED_TRIGGERS

  • QRTZ_SCHEDULER_STATE

  • QRTZ_LOCKS

...

这些表记录 Job/Trigger,实现持久化。

3. 可选:为 Job 启用持久化注解(存储 JobDataMap)

如果你的 Job 需要持久化任务状态,添加:

@PersistJobDataAfterExecution
@DisallowConcurrentExecution
public class MyJob implements Job {...
}

功能说明:

注解 作用
@PersistJobDataAfterExecution 执行后的JobDataMap数据状态写回数据库
@DisallowConcurrentExecution 任务串行执行,避免读写冲突

@DisallowConcurrentExecution 的作用

防止同一个 Job 的多个实例并发执行。

也就是说:

Quartz 会等待当前 Job 执行完,才会执行下一次触发。

为什么需要这个注解?

Quartz 默认行为是:

  • 假设你的 Job 计划每 5 秒 执行一次

  • 但你的任务实际执行时间是 10 秒

那么:

  • Quartz 会在第 5 秒再并发启动一个 Job 实例

  • 第 10 秒再启动一个

  • 这样会导致同一个 Job 多实例并发执行

这在很多业务场景是危险的:

  • 写数据库时造成脏数据

  • 写文件导致冲突

  • 调接口重复提交

  • 修改共享变量时出并发问题

加上 @DisallowConcurrentExecution 后

Quartz 保证:

✔ 第一个任务没执行完
✔ Quartz 不会再启动第二个
✔ 任务之间严格串行执行
✔ 安全性强

@PersistJobDataAfterExecution 的作用

让你在 Job 里面修改的参数(JobDataMap)能被保存下来,下次执行还能继续用。

举个最简单的例子

你有个定时任务,每次执行想让计数器 count +1:

int count = data.getInt("count");
data.put("count", count + 1);

如果 没有 @PersistJobDataAfterExecution:

  • 每次执行 count 都从 0 开始

  • 因为 Quartz 不会把你更新的值保存下来

如果 加上 @PersistJobDataAfterExecution:

  • count 会变成 1、2、3、4...

  • Quartz 会把更新后的值写回数据库

  • 服务重启后 count 也不会丢

只要你在 job 里对 JobDataMap 做写操作,想保存结果 → 就一定要加 @PersistJobDataAfterExecution + @DisallowConcurrentExecution。(防止并发造成的数据覆盖和丢失)

如果你只需要任务被保存,而不需要保存 JobDataMap,可以不加这两个注解。

4. 创建 Job 时必须设置 .storeDurably()

持久化 Job 的关键:

JobDetail jobDetail = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").storeDurably()    // ★★★★★ 必须,Job 才会存入数据库.build();

不加 storeDurably() 的 Job 会被当成“临时 Job”,服务重启后会丢失。

Trigger 默认会持久化,不需要额外配置。

5. 服务重启后自动恢复机制

Quartz 启动时会自动从以下表中加载任务:

  • QRTZ_JOB_DETAILS

  • QRTZ_TRIGGERS

  • QRTZ_CRON_TRIGGERS / QRTZ_SIMPLE_TRIGGERS

无需额外代码。

6. 如何验证持久化是否生效

  1. 创建一个 Job + Trigger

  2. 启动服务 → 任务执行正常

  3. 查看数据库 QRTZ_ 前缀的表,是否有记录

  4. 停止服务

  5. 再次启动

  6. 任务是否自动恢复执行

如能恢复,即持久化成功。

参考文章:
【Quartz】(一)定时框架Quartz的持久化配置: https://blog.csdn.net/Jeffhan_java/article/details/123532049

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/994837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[免费]基于Python的深度学习豆瓣电影数据可视化+情感分析推荐环境(Flask+Vue+LSTM+scrapy)【论文+源码+SQL脚本】

[免费]基于Python的深度学习豆瓣电影数据可视化+情感分析推荐环境(Flask+Vue+LSTM+scrapy)【论文+源码+SQL脚本】2025-12-09 13:58 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word…

2025年12月高端托福封闭班机构深度评测:无老师国际领跑行业

2025年12月高端托福封闭班机构深度评测:无老师国际领跑行业随着留学热潮持续升温,托福考试作为全球认可度最高的英语能力测试之一,其备考需求也呈现爆发式增长。在众多托福培训机构中,封闭式集训班因其高强度、高效…

2025年12月高端托福封闭班机构调研:无老师国际深度解析

2025年12月高端托福封闭班机构调研:无老师国际深度解析在竞争激烈的托福培训市场中,选择一家专业、高效的培训机构对考生成绩提升至关重要。本文将为您深度解析高端托福封闭班领域的知名品牌——无老师国际,帮助您全…

TortoiseGit小乌龟下载安装教程

本文详细介绍了如何安装和配置TortoiseGit。我们从下载TortoiseGit的安装包开始,然后按照步骤进行安装,并在过程中选择合适的选项。接着,我们对TortoiseGit进行了基本的配置,包括设置用户名和邮件地址,选择默认编…

2025年保温聚氨酯高压发泡机实力厂家推荐,看哪家的产品性价

在工业制造领域,聚氨酯发泡设备的稳定性与专业性直接决定了产品质量与生产效率。为帮助企业精准锁定适配需求的设备供应商,我们从技术稳定性、产品适配性、性价比、售后服务及客户口碑五大维度,对行业头部服务商展开…

nim语言要加分号吗

nim语言要加分号吗在 Nim 语言中,每一行末尾不需要加分号。 Nim 使用换行符来分隔语句,就像 Python 一样。只有在以下情况才需要使用分号: 在同一行写多个语句时,需要用分号分隔,例如:echo "Hello"; e…

2025年靠谱的文具铁盒品牌厂家排行榜

2025年靠谱的文具铁盒品牌厂家排行榜文具铁盒行业背景与市场趋势文具铁盒作为兼具实用性与收藏价值的包装产品,近年来在全球市场持续升温。随着消费者环保意识的提升和个性化需求的增长,金属包装因其可回收、耐用且可…

2025年冬天大棚订做厂家权威推荐榜单:山东大棚‌/新型养殖大棚‌/连栋大棚源头厂家精选

冬季大棚是保障我国北方地区反季节生产、克服低温逆境的核心农业设施。为应对冬季复杂的保温、采光与风雪荷载挑战,对专业订做厂家的选择变得至关重要。根据行业数据,到2025年,我国温室大棚面积预计将突破1.5亿平方…

2025年度佛山建筑陶瓷品牌排行榜推荐——广东和陶家居股份有

为帮消费者高效锁定适配家装/工程需求的建筑陶瓷品牌,避免选购走弯路,我们从技术专利实力、产品性能表现、全周期服务质量及真实客户口碑四大维度,对多家佛山陶瓷品牌展开深度评估,终精心筛选出2024年的5大建筑陶瓷…

闸机租赁:如何选择可靠的源头厂家

引言 随着各类展会、活动的增多,临时性通道管理需求日益增长。闸机租赁作为一种灵活且经济的解决方案,逐渐受到市场的青睐。然而,在众多闸机租赁供应商中,如何选择一个可靠的源头厂家成为了一个重要的问题。本文将…

2025年中国智能财税服务公司TOP5推荐:九洲财务口碑如何

本榜单基于行业调研与真实客户反馈,聚焦智能财税服务领域,筛选出五家标杆企业,为企业选型与求职者择业提供参考,助力精准匹配专业服务伙伴与优质就业平台。 TOP1 推荐:南京九洲会计咨询有限公司(九洲财务) 推荐…

2025年五大防腐压滤机服务商排行榜,板框压滤机供应企业推荐

为帮企业高效锁定适配自身固液分离需求的压滤机合作伙伴,避免选型走弯路导致设备频繁故障、环保合规风险,我们从核心技术实力(如防腐材质耐蚀性、滤饼含水率控制精度)、行业适配经验(含高粘度/强腐蚀物料处理案例…

2025年热门的变压器骨架厂家选购指南与推荐

2025年热门的变压器骨架厂家选购指南与推荐行业背景与市场趋势随着全球电子产业的持续发展,变压器作为电力转换和信号传输的核心元件,其市场需求呈现稳定增长态势。据市场研究机构预测,2025年全球变压器市场规模将达…

2025年建筑陶瓷企业口碑与性价比排名:广东和陶家居股份有限

在建筑陶瓷行业,产品品质、性价比与设计实力是企业立足市场的核心竞争力。面对消费者对瓷砖耐污、防脱落、美观耐用的核心需求,如何挑选靠谱的陶瓷企业?以下结合行业调研,为你解析2025年建筑陶瓷企业口碑与性价比排…

2025年郑州宠物美容服务/培训推荐排行榜,宠物美容学校哪家

为帮宠物行业从业者高效锁定适配自身需求的宠物美容服务与培训合作伙伴,避免选型走弯路,我们从培训体系专业度(如课程认证含金量、实操机会占比)、服务质量(含教学反馈机制、就业保障落地性)、客户口碑(侧重学员…

2025年热门的平面贴标机/在线打印贴标机厂家推荐及采购指南

2025年热门的平面贴标机/在线打印贴标机厂家推荐及采购指南行业背景与市场趋势随着全球制造业的智能化升级和自动化需求持续增长,平面贴标机和在线打印贴标机市场正迎来前所未有的发展机遇。根据市场研究机构的数据显…

2025上海英国留学中介哪家好

2025上海英国留学中介哪家好一、2025上海英国留学中介选择指南作为从业八年的国际教育规划师,我经常被上海地区的学生和家长询问如何选择英国留学中介。2025年,随着英国签证政策的微调和申请竞争加剧,许多家庭希望找…

2025年飞机盒全版清废机定做厂家权威推荐榜单:纸盒拆标清废机‌/烟包清废机‌/包装盒自动清废机源头厂家精选

在印刷包装行业,模切后的清废工序是决定成品效率与品质的关键。传统人工清废不仅效率低下,更易因操作误差导致损耗。随着制造业智能化转型深入,自动化清废设备市场需求持续增长,数据显示,采用自动化清废设备后,企…

2025年评价高的陕西消防设备/西安消防设备实力厂家TOP推荐榜

2025年评价高的陕西消防设备/西安消防设备实力厂家TOP推荐榜行业背景与市场趋势随着我国城市化进程的加快和消防安全意识的不断提高,消防设备行业迎来了快速发展期。陕西省作为西北地区的重要经济中心,其消防设备制造…

2025年财税服务公司推荐:九洲财务招聘职业发展与创新服务全

在数字化转型浪潮席卷财税行业的当下,企业对智能化财税解决方案的需求日益迫切,而财税服务公司的专业能力、创新实力与人才培养体系,成为企业选择合作伙伴的核心考量。面对市场上琳琅满目的财税服务机构,如何找到既…