public class SchedulerTest { public static void main(String[] args) { //建立schedulerFactory類 SchedulerFactory schedulerfactory=new StdSchedulerFactory(); Scheduler scheduler=null; try{ //第一步:經過schedulerFactory獲取一個調度器 scheduler=schedulerfactory.getScheduler(); //第二步:建立jobDetail實例,綁定Job實現類 //指明job的名稱,所在組的名稱,以及綁定job類--這裏是要定時執行的那個類,須要實現org.quartz.Job接口 JobDetail job=JobBuilder.newJob(MyJob.class)
.withIdentity("job1", "jgroup1").build(); //第三步:定義調度觸發規則: //規則一:使用simpleTrigger規則--通常用於循環執行 /* Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity("simpleTrigger", "triggerGroup")
//間隔時間 .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1)
.withRepeatCount(8)) //運行次數 .startNow().build(); */ //規則二:使用cornTrigger規則 天天10點42分 --通常由用於定時執行 Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity("simpleTrigger", "triggerGroup")
//這個規則下面解釋 .withSchedule(CronScheduleBuilder.cronSchedule("0 42 10 * * ? *")) .startNow().build(); //第四步:把做業和觸發器註冊到任務調度中 scheduler.scheduleJob(job, trigger); //最後第五步:啓動調度 scheduler.start(); }catch(Exception e){ e.printStackTrace(); } } }
規則一用的是SimpleScheduleBuilder去設置,主要設置2個參數間隔時間和運行次數maven
1.間隔時間的設置方法以下:ui
能夠按照毫秒,秒 ,分鐘,小時去配置;spa
2.運行次數的設置方法以下:.net
withRepeatCount()設置任務須要執行的總次數。3d
下邊那個repeatForever()這個方法單獨說一下,這個方法會把repeatCount設置爲-1,意思是一致循環下去。code
3.間隔時間和運行次數一塊兒設置:blog
這些方法看方法名字差很少就知道什麼意思了,好比repeatMinutelyForever(10) 每隔10分鐘,一致循環執行下去。接口
這些方法內部基本調用的是前面2個方法,具體解釋點進去看註釋吧。get
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>it
參考文章:http://blog.csdn.net/yuebinghaoyuan/article/details/9045471