美文网首页Spring Boot我爱编程spring系列
spring boot + quartz(定时任务保存到数据库)

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

作者: 说你还是说我 | 来源:发表于2018-05-27 18:17 被阅读725次

    参考文章
    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.csdn.net/running_snail_/article/details/48848229 (持久化定时任务需要单独配置)
    https://blog.csdn.net/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自己的实现,有不可预测的风险。

    代码地址:码云
    不足之处,请纠正

    相关文章

      网友评论

      本文标题:spring boot + quartz(定时任务保存到数据库)

      本文链接:https://www.haomeiwen.com/subject/fatijftx.html