1.引入quartz框架
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
2.声明一个配置类,定义任务执行的策略
@Configuration
public class QuartzConfig {
/**
* 声明一个任务
* @return
*/
@Bean
public JobDetail jobDetail() {
return JobBuilder.newJob(TestJob.class)
.withIdentity("TestJob", "test")
.storeDurably()
.build();
}
/**
* 声明一个触发器,什么时候触发这个任务
* @return
*/
@Bean
public Trigger trigger() {
return TriggerBuilder.newTrigger()
.forJob(jobDetail())
.withIdentity("trigger", "trigger")
.startNow()
.withSchedule(CronScheduleBuilder.cronSchedule("*/2 * * * * ?"))
.build();
}
}
3.定义一个任务类,定义需要执行的具体任务
public class TestJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("TestJob TEST开始");
// try {
// Thread.sleep(3000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
System.out.println("TestJob TEST结束");
}
}
4.并发性
是并发执行的,本例每两秒钟执行一次,不管上一个并发任务是否执行结束都会进行下一个任务,可以在TestJob(具体的任务类)上面加上
@DisallowConcurrentExecution
注解来禁止并发执行