(一)概念
最近在项目中用到了Quartz,Quartz用来实现定时调度。在项目中主要实现的功能就是每隔30s重新执行一遍程序获得一遍最新的数据。
(二)应用
1.首先需要有一个实现类,用来实现具体的功能
- 这个类实现了Job类
public class SoldOutPlan implements Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
//主要功能...
}
2.创建一个类触发任务
public class SoldOutService {
public void createPlan() {
//创建一个jobDetail的实例,将该实例与实现方法类(SoldOutPlan Class )绑定
JobDetail jobDetail = JobBuilder.newJob(SoldOutPlan.class).withIdentity("job", "group").build();
//创建一个Trigger触发器的实例,定义该job立即执行,并且每2秒执行一次,一直执行
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger", "group")
.withSchedule(CronScheduleBuilder.cronSchedule(2)).build();
StdSchedulerFactory factory = new StdSchedulerFactory();
jobDetail.getJobDataMap().put("service", this);
try {
Scheduler scheduler = factory.getScheduler();
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}