前言
SpringBoot 内置的 Scheduled 注解支持简单的定时任务调度。当业务逻辑变得复杂时,需要更灵活的任务调度策略,此时推荐使用 Quartz。
依赖配置
Gradle 构建脚本中添加以下依赖:
compile group: 'org.quartz-scheduler', name: 'quartz', version: '2.2.1'
配置文件
在 SpringBoot 项目的 resources 目录下创建 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

