引入依赖 spring-boot-starter-quartz
创建一个类,继承 QuartzJobBean 抽象类,作为定时任务逻辑
配置类中添加两个Bean:
- JobDetail :定时任务的bean
- Trigger : 触发器的bean
示例:
SampleJob类 继承了 QuartzJobBean 抽象类
@Configuration
public class QuartzConfiguration {
@Bean
public JobDetail SampleJobJobDetail() {
// 使用JobBuilder将获取天气定时任务创建出来,名称为 “SampleJob”
return JobBuilder.newJob(SampleJob.class).withIdentity("SampleJob").storeDurably().build();
}
@Bean
public Trigger SampleJobTrigger() {
// 设置定时任务,30分钟执行一次
SimpleScheduleBuilder schedBuilder = SimpleScheduleBuilder.simpleSchedule()
.withIntervalInMinutes(30).repeatForever();
// 触发器 分别设置触发的任务(SampleJob)、触发计划(schedBuilder)、触发器名称(SampleTrigger)
return TriggerBuilder.newTrigger()
.forJob(weatherDataSyncJobJobDetail()) //将JobDetail bean加载进来
.withIdentity("SampleTrigger")
.withSchedule(schedBuilder)
.build();
}
}