小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
SpringBoot整合Quartz时可以将该框架在SpringBoot框架基础上使用
- 依赖引入
在SpringBoot项目中使用Quartz是需要引入相关的依赖信息的。
1 | xml复制代码<!--quartz依赖--> |
- 步骤流程
- 定义任务类实现quertz包的Job接口,并实现其中execute()方法,定义任务内容
- 定义quertz相关配置类,创建JobDetailFactoryBean、SimpleTriggerFactoryBean、SchedulerFactoryBean对象并使用@Bean注入Spring容器中管理
- 工厂类是SpringBoot提供的,工厂类存在于
spring-context-support
依赖的org.springframework.scheduling.quartz
包中,定义创建相关对象时需要引入相依赖 - JobDetailFactoryBean定义时需要设置定义的任务类
- SimpleTriggerFactoryBean定义时需要传入JobDetailFactoryBean对象并配置触发策略
- SchedulerFactoryBean定义时需要传入SimpleTriggerFactoryBean对象
- 工厂类是SpringBoot提供的,工厂类存在于
- 在启动类上使用@EnableScheduing注解表示开启SpringBoot定时任务
- 启动服务,定时任务会按照定义策略执行
- 启动服务时可能会报找不到类的错误,此时查看是否引入
spring-tx
依赖
- 启动服务时可能会报找不到类的错误,此时查看是否引入
- 示例代码
3.1 定义任务类
任务类仍然是要实现Job,并实现其中的execute接口来定义任务内容。
1 | java复制代码public class DoTaskTest implements Job { |
3.2 配置类
在SpringBoot中使用时定义的配置类,可以将任务对象、触发器和调度器都交给Spring容器进行管理,在需要时取出来使用。
1 | java复制代码@Configuration |
3.3 启动类
@EnableScheduling注解用来开启定时任务,可以标注在启动类或者Quartz的配置类上。
1 | java复制代码@SpringBootApplication |
- 总结
在SpringBoot项目中整合Quartz还是比较容易的,这样在项目启动时就会自动执行任务类中的任务。
但是,对于实际的使用场景,定时任务肯定是不止一个的,这种情况下又该如何来定义任务、动态的实现触发器配置以及启停调度器呢。
本文转载自: 掘金