spring boot starter quartz 集成

Quartz是功能强大的开源作业调度库,可以集成在任何Java应用程序中。spring boot 2提供了quartz相应的spring-boot-starter-quartz(spring boot 2开始官方支持)简化quartz的集成。
下面基于spring 2.3.0.RELEASE集成。代码如下:
通过spring-boot-autoconfigure中的spring.factories中的
org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration
提供自动配置。外部配置通过QuartzProperties对应的配置参数设置。
QuartzAutoConfiguration提供了quartzScheduler的SchedulerFactoryBean的配置。
在这里插入图片描述
其中jobDetails和triggers注入JobDetail和Trigger类型的bean。简化配置。
SpringBeanJobFactory可以把每次调度生成的job注入spring上下文。从而可以在Job的实现类中使用spring 的依赖注入功能。quartzProperties是对应于quartz.properties,使得配置统一集中到application.yml中管理。

SchedulerFactoryBean中实现了InitializingBean接口,afterPropertiesSet中进行Scheduler instance的初始化。
1、通过schedulerFactory获取Scheduler instance
2、注册listener到Scheduler
3、注册Job和trigger到Scheduler

Quartz提供两种JobStore。MEMORY和JDBC。
通过spring.quartz.jobStoreType=JobStoreType.JDBC启动数据库存储方式。
数据表的初始化可以在quartz-2.3.2.jar的org.quartz.impl.jdbcjobstore看到。根据自己的数据库进行选择。同时在quartzProperties中配置
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX #持久化方式配置
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate #持久化方式配置数据驱动
tablePrefix: qrtz_ #quartz相关数据表前缀名
isClustered: true #开启分布式部署
在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐