概念:
- 当处理一些,简单的,固定时间,重复次数的任务可以使用简单触发器
- 当处理一些,负载的任务,可以使用Cron表达式(触发器的name字段一定要写)
1.一个jobDetail就是一个业务。也就是准备定时的任务
@Bean
public JobDetail jobDetail(){
JobDetail jobDetail=new JobDetail("scheduledTasks2s", Scheduler.DEFAULT_GROUP, ScheduledTasks2.class);
return jobDetail;
}
2.SimpleTrigger简单触发器,设置多久触发一次,触发次数
@Bean
public SimpleTrigger simpleTrigger(){
SimpleTrigger simpleTrigger=new SimpleTrigger("simpleTrigger",Scheduler.DEFAULT_GROUP);
simpleTrigger.setStartTime(new Date(System.currentTimeMillis()));
simpleTrigger.setRepeatInterval(5000);//没
simpleTrigger.setRepeatCount(10);//执行10次
return simpleTrigger;
}
2.1可以使用cron表达式的触发器
/**
* 触发器名字一定要写
* @return
* @throws Exception
*/
@Bean
public CronTrigger cronTrigger() throws Exception {
CronTrigger cronTrigger = new CronTrigger();
cronTrigger.setName("MyCronTrigger");
cronTrigger.setCronExpression("0/1 * * * * ? ");
return cronTrigger;
}
3.Scheduler调度器,这个调度器由SchedulerFactory工厂获得设置定时任务和触 发器
@Bean
public Scheduler scheduler(JobDetail jobDetail,SimpleTrigger simpleTrigger)throws Exception{
SchedulerFactory schedulerFactory=new StdSchedulerFactory();
Scheduler scheduler=schedulerFactory.getScheduler();
scheduler.scheduleJob(jobDetail, simpleTrigger);
return scheduler;
}