前言
springboot内置有org.springframework.scheduling.annotation.Scheduled可以让我们进行简单快速的任务调度(例如定时执行的任务),当我们一些和任务调度有关的业务开始复杂的时候,极其需要非常灵活的任务调度策略;在这种情况,博主使用了quartz,写下此文以记;
依赖(gradle)
compile group: 'org.quartz-scheduler', name: 'quartz', version: '2.2.1'
quartz的配置文件
springboot中集成quartz并进行持久化配置,在springboot项目中的resources目录下创建properties文件(和springboot的配置文件同级),命名quartz.properties;
内容如下:
# 固定前缀org.quartz
# 主要分为scheduler、threadPool、jobStore、plugin等部分
#
#实例名
org.quartz.scheduler.instanceName=TioadScheduler
#实例id(唯一,有缺省值)
org.quartz.scheduler.instanceId=TioadSchedulerId
org.quartz.scheduler.rmi.export=false
org.quartz.scheduler.rmi.proxy=false
org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
# 实例化ThreadPool时,使用的线程类为SimpleThreadPool
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
# threadCount和threadPriority将以setter的形式注入ThreadPool实例
# 并发个数
org.quartz.threadPool.threadCount=5
# 优先级
org.quartz.threadPool.threadPriority=5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
org.quartz.jobStore.misfireThreshold=5000
# 默认存储在内存中
#org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#持久化
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.tablePrefix=QRTZ_
org.quartz.jobStore.dataSource=qzDS
org.quartz.dataSource.qzDS.driver=com.mysql.jdbc.Driver
#dev(第一次初始化quartz,需要执行quartz包下的sql,创建表结构)
org.quartz.dataSource.qzDS.URL=持久化的数据库url配置
org.quartz.dataSource.qzDS.user=持久化的数据库连接用户账号配置
org.quartz.dataSource.qzDS.password=持久化的数据库连接用户密码配置
org.quartz.dataSource