- Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。
- 我们在使用Quartz来创建定时任务是,只需要关注三点内容 : Job(任务),Trigger(触发器)和Scheduler(调度器)
Job : 我们想要做的定时任务内容是什么。
Trigger : 我们想在什么时间上执行job。
Scheduler : 触发器生效 , 进行定时任务。
在SpringBoot中应用Quartz
- 在pom.xml中添加依赖
<dependencies>
<!-- scheduled所属资源为spring-context-support,在Spring中对Quartz的支持,是集成在spring-context-support包中。org.springframework.scheduling.quartz -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<!-- Quartz坐标 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
<!-- Quartz默认需要slf4j支持。springboot中,提供了更高版本的slf4j -->
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring tx 坐标,quartz可以提供分布式定时任务环境。多个分布点上的Quartz任务,是通过数据库实现任务信息传递的.通过数据库中的数据,保证一个时间点上,只有一个分布环境执行定时任务-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
</dependencies>
2.在SpringBoot启动类使用@EnableScheduling注解
3. 编写自己的定时任务实现job
4. 编写定时任务配置类
5.重写JobFactory 实现将JobDetail对象加入到Spring容器中,让Spring容器管理,并自动装配逻辑。
6. 启动 测试