Quartz 定时任务

引入依赖 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();
	}
}

你可能感兴趣的:(Spring)