資源描述:
《調(diào)度任務(wù)框架Quart的使用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、1.新建任務(wù)接口JobpublicinterfaceJob{publicvoidexecute(JobExecutionContextcontext)throwsJobExecutionException;}2.創(chuàng)建接口Job的實現(xiàn)類publicclassSimpleJobimplementsJob{publicvoidexecute(JobExecutionContextarg0)throwsJobExecutionException{System.out.println("SimpleJob");//執(zhí)行內(nèi)容}}3.
2、調(diào)度任務(wù)執(zhí)行建立要素(1).新建調(diào)度工廠SchedulerFactory對象sfSchedulerFactorysf=newStdSchedulerFactory();(2).獲取調(diào)度任務(wù)對象Schedulersched=sf.getScheduler();(3).幾種觸發(fā)開始時間設(shè)置DatestartTime=org.quartz.DateBuilder.dateOf(inthour,intminute,intsecond,intdayOfMonth,intmonth,intyear)DatestartTime=org
3、.quartz.DateBuilder.dateOf(inthour,intminute,intsecond)DatestartTime=newDate(System.currentTimeMillis()+60000L))//指定60秒鐘以后開始。DatestartTime=DateBuilder.nextGivenSecondDate(null,15);//每分鐘以15秒為單位,當(dāng)前時間下個15秒開始DatestartTime=DateBuilder.nextGivenSecondDate(null,5);//每分鐘
4、以5秒為單位,當(dāng)前時間下個5秒開始DatestartTime=evenMinuteDate(newDate());//當(dāng)前時間下一分鐘開始DatestartTime=futureDate(5,IntervalUnit.SECOND);//當(dāng)前時間加5秒開始DatestartTime=futureDate(5,IntervalUnit.MINUTE);//當(dāng)前時間加5分鐘開始//IntervalUnit的屬性有(SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,YEAR)(4).新建任務(wù)job并設(shè)置--執(zhí)
5、行對象SimpleJob.class中execute()方法JobDetailjob=newJob(SimpleJob.class).withIdentity("job1","group1").build();(5)新建觸發(fā)器并設(shè)置//1.觸發(fā)一次atstartTimeSimpleTriggertrigger=(SimpleTrigger)newTrigger().withIdentity("trigger1","tgroup1")//設(shè)置觸發(fā)器(名稱,組名)--全名.startAt(startTime)//設(shè)置開始時間
6、.build();ft=sched.scheduleJob(job,trigger);//2.先觸發(fā)1次atstartTime,再重復(fù)觸發(fā)10次,1次/10秒。如果10次內(nèi)調(diào)度schedule關(guān)閉,也將提前終止。job=newJob(SimpleJob.class).withIdentity("job2","group1").build();trigger=newTrigger().withIdentity("trigger2","tgroup1").startAt(startTime).withSchedule(sim
7、pleSchedule().withIntervalInSeconds(10)//一次/10s.withRepeatCount(10))//重復(fù)觸發(fā)共10次.build();ft=sched.scheduleJob(job,trigger);//3.先觸發(fā)1次atstartTime,再重復(fù)一直觸發(fā)直到調(diào)度schedule關(guān)閉,1次/30秒。job=newJob(SimpleJob.class).withIdentity("job3","group1").build();trigger=newTrigger().withI
8、dentity("trigger3","tgroup1").startAt(startTime).withSchedule(simpleSchedule().withIntervalInSeconds(30).repeatForever())//一直重復(fù)觸發(fā).build();ft=sched.scheduleJob(