转载至http://blog.csdn.net/a4307515/article/details/46985533
1.关键接口
- Scheduler,任务调度的API;它可以用来启动或者终止任务等。
- Job,具体的任务接口;通过实现它,来让任务调度执行具体的任务。
- JobDetail ,用来定义Job的实例。
- Trigger ,触发器用来定义给定的Job应该如何执行。
- JobBuilder ,用来定义/构建Jobdetail实例。
- TriggerBuilder ,用来定义/构建Trigger实例。
2.简单例子
下面是一个简单的例子,创建一个简单的任务调度。
创建一个Job,名为HelloJob:
package me.shijunjie.quartz; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class QuartzTestJob implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("Hello, Quartz! - executing its JOB at "+ new Date() + " by " + context.getTrigger().getJobKey().getName()); } }
实现Job接口中的execute方法,这个方法中是我们需要任务调度执行的具体内容
首先,创建JobDetail:
JobDetail jobDetail = JobBuilder.newJob(QuartzTestJob.class) .withIdentity("testQuartzJob", "group1").build();
然后,创建Trigger:
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("myTrigger", "group1") .startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule() .withIntervalInSeconds(5).withRepeatCount(3)).build();
最后,获取Scheduler,并启动任务:
SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); //添加job,以及其关联的trigger scheduler.scheduleJob(jobDetail, trigger); //启动job scheduler.start();
运行结果如下