最近有個需求,需要在一段時間內(如8月1號到10號),每天間隔一定時間(如30分鐘)執行指定次數(5次)的任務。
用quartz來實現任務調度,CronTrigger和Simple Trigger不太滿足要求,看了下quartz源碼,發現quartz有一個
DailyTimeIntervalTrigger的Trigger可以滿足要求,Trigger設置如下:
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(jobName)
.startNow()
.endAt(new Date(endTime))
.withSchedule(DailyTimeIntervalScheduleBuilder
.dailyTimeIntervalSchedule()
.startingDailyAt(TimeOfDay.hourAndMinuteAndSecondFromDate(new Date(startTime)))
.withIntervalInSeconds(intervalInMinutes)
.endingDailyAfterCount(repeatCount))
.build();
基中startTime,endTime指定任務的時間段,如2019-08-01 1:30:00 ,2019-08-10 1:30:00, intervalInMinutes指定間隔多少秒, repeatCount指定一天執行幾次