Quartz 三要素:
Scheduler:任务调度器,所有的任务都是从这里开始。
Trigger:触发器,定义任务执行的方式、间隔。
JobDetail & Job : 定义任务具体执行的逻辑。
由于所学尚浅,先说一个简单的实现方式。
写一个配置类
@Configuration
public class QuartzConfig {
@Bean
public JobDetailtestQuartz1() {
//Application这个类是继承了QuartzJobBean的Job实现类,是实现了protected void executeInternal(JobExecutionContext context)方法
return JobBuilder.newJob(Application.class).withIdentity("Application").storeDurably().build();
}
//CronScheduleBuilder.cronSchedule("0 42 10 * * ? *")
@Bean
public TriggertestQuartzTrigger1() {
//3秒执行一次
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(61)//between查找数据时防止重复,手动往后移动一秒
// .withRepeatCount(2);//重复执行的次数
.repeatForever();
return TriggerBuilder.newTrigger().forJob(testQuartz1())
.withIdentity("Application")
.withSchedule(scheduleBuilder)// CronScheduleBuilder.cronSchedule("0 09 14 * * ? *") */5 * * * *
.build();
}
}
利用bean在Spring中的生命周期,项目启动,便开始运行定时器。
网友评论