需要声明的是,本篇博客参考了springboot整合Quartz实现动态配置定时任务和 spring boot整合quartz实现多个定时任务。其中的大部分代码都是参考这两篇博客中的代码。在此感谢博主!
因为项目中需要用到比较复杂的定时,就看了下quartz。参考了上面的两篇博客,算是个demo吧。
简单理解,quartz的定时可以大致分为两部分,一种时单任务,一种是多任务。
需要引入的依赖:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
1,quartz单任务
添加一个任务:
@Configuration
@Component
@EnableScheduling // 该注解必须要加
public class ScheduleTask {
public void scheduleTest() {
System.err.println("scheduleTest开始定时执行");
}
}
配置:
@Configuration
public class QuartzConfigration {
@Bean(name = "jobDetail")
public MethodInvokingJobDetailFactoryBean detailFactoryBean(ScheduleTask task) {
// ScheduleTask为需要执行的任务
MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean();
/*
* 是否并发执行
* 例如每5s执行一次任务,但是当前任务还没有执行完,就已经过了5s了,
* 如果此处为true,则下一个任务会bing执行,如果此处为false,则下一个任务会等待上一个任务执行完后,