最近有个需求,需要在一段时间内(如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指定一天执行几次