首先第第一步配置配置文件
spring:
quartz:
#初始化后自动调取调度程序
auto-startup: true
#初始化后调取调度程序的延迟,这里配置初始化后5分钟后调取调度程序
startup-delay: PT2M
jdbc:
#数据的初始化模式
initialize-schema: embedded
schema: classpath:quartz/tables_@@platform@@.sql
#这个配置在数据库中存储定时调度信息
job-store-type: jdbc
#在关闭服务的时候如果有任务正在运行就等待执行完毕后关闭
wait-for-jobs-to-complete-on-shutdown: true
#配置的任务覆盖现有的任务
overwrite-existing-jobs: true
scheduler-name: quartzScheduler
properties:
org:
quartz:
scheduler:
instanceName: defaultQuartzScheduler
rmi:
export: false
proxy: false
wrapJobExecutionInUserTransaction: true
jobStore:
misfireThreshold: 60000
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 20
threadPriority: 5
threadsInheritContextClassLoaderOfInitializingThread: true
simpl:
RAMJobStore:
class: org.quartz.simpl.RAMJobStore
这里我配置了数据库的持久化,这块持久化你只要配置了jdbc他会自动找到当前的datasoure去注入进去
首先将initialize-schema设置成always,第一次启动初始化我们的数据库表,自动给你初始化表。
properties的配置在什么地方:在你引入的
spring-boot-starter-quartz.jar下面的org.quzrtz目录下有一个properties文件,把这个文件的内容转yml然后放到properties下面就可以了,这个也是人家配置好的,线程数量什么的可以自己去设置设置,其他就不要动了
在resource下新建一个文件夹用来放置sql文件,文件夹名称叫quartz
把spring-boot-starter-quartz.jar org/quartz/impl/jdbcjobstore/目录下面的sql文件都复制到这里面来
然后你需要配置数据库的连接 看你用什么,德鲁伊什么的就自己配置下然后启动,第一次启动会生成数据表结构,然后关了,把配置文件的initialize-schema修改为embedded,就ok了。
然后操作基本就是jobDetail和trigger,如果你想添加动态的任务我建议你用cron来配置。我这边就是样例代码