热门
spring中使用quartz框架(持久化到数据库+springboot)
本例是在springboot中通过读取数据库的定时任务信息,动态生成quartz定时任务
1、导入依赖:
[html] view plain copy
2、在项目中添加quartz.properties文件(这样就不会走它自带的properties文件)
3、在数据库中创建quartz相关的表
1)进入quartz的官网http://www.quartz-scheduler.org/,点击Downloads,下载后在目录\docs\dbTables下有常用数据库创建quartz表的脚本。
2)百度去搜创建quartz表
4、自定义MyJobFactory,解决spring不能在quartz中注入bean的问题
[java] view plain copy
5、创建调度器schedule
6、更新quartz中的任务
首先我们需要自己创建一张表,用来存放trigger的信息,然后从数据库读取这些信息来随时更新定时任务
现在我的数据库中有两个定时任务,注意:job_name存放的任务类的全路径,在quartz中通过jobName和jobGroup来确定trigger的唯一性,所以这两列为联合唯一索引。
接着创建实体类:
更新quartz中的任务
7、自定义任务
要搞清楚一个问题:从数据库读取任务信息动态生成定时任务,和把quartz持久化到数据库是没有关系的。
前者是我们自己定义的业务表,而后者是quartz使用自己的表来存储信息。持久化到数据库后,就算服务器重启或是多个quartz节点也没关系,因为他们共享数据库中的任务信息。