轉載至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();
運行結果如下