spring boot + quartz(定时任务保存到数据库)

本文详细介绍了如何在SpringBoot项目中集成Quartz实现定时任务,包括配置Properties文件、创建Job任务、继承AdaptableJobFactory以获取Spring Bean、创建Job对象和触发器、配置Quartz获取Spring Bean等步骤。同时,文中还提供了将Quartz定时任务持久化到数据库的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转:https://www.jianshu.com/p/f22384a1f35f

参考文章
http://www.quartz-scheduler.org/documentation/quartz-2.2.x/quick-start.html
http://www.cnblogs.com/daxin/p/3608320.html (quartz任务获取spring bean)
https://blog.youkuaiyun.com/running_snail_/article/details/48848229 (持久化定时任务需要单独配置)
https://blog.youkuaiyun.com/wk52525/article/details/79100973 (spring boot集成quartz)

在我们需要把quartz的定时任务持久化到数据库的时候,我们首先需要找到quartz提供给的sql,https://github.com/quartz-scheduler/quartz/tree/quartz-2.2.x这个是2.2.x分支里的sql脚本。master分支上是没有的,这点我们需要注意一下。
具体目录如下

image.png


找到对应的数据库脚本,笔者这里用的是mysql

 

具体步骤

1.配置properties文件

 

image.png


spring boot 文档地址https://docs.spring.io/spring-boot/docs/2.0.2.RELEASE/reference/htmlsingle/#boot-features-quartz

 

2.创建job任务

image.png

3.继承AdaptableJobFactory

image.png

 

这里是为了让quartz能获取到spring 维护的bean对象,否者我们的job中是拿不到spring创建的对象,也就不能使用我们通用的dao、service等。

4.创建job对象

image.png

5.创建触发器

image.png

 

这里的参数可以不用,但是我们在设置job的时候需要调用第四步的方法。

6.创建计划任务

image.png

 

这里需要注意的是dataSource。我们需要指定quartz的数据元,否者就会创建一个保存在内存中的定时任务,下面分别是内存和数据库的启动的日志

 

image.png

 

image.png

7.配置quartz能够获取到spring维护的bean

image.png

这个例子中,我们省去了手动来维护quartz的表操作,完全是quartz自己来维护。网上的资料大多数是自己编写代码来操作quartz的表操作。这样也就完全没有用到quartz自己的实现,有不可预测的风险。



作者:说你还是说我
链接:https://www.jianshu.com/p/f22384a1f35f
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值