阅读quartz 2.1文档并不能完全回答我的问题: - 如何设置触发器,每天仅在09:00到12:00之间每20分钟连续启动一次作业?
可能结合了startAt和endAt?
trigger = newTrigger()
.withIdentity("trigger3", "group1")
.startAt(tomorrowAt(15, 0, 0) // first fire time 15:00:00 tomorrow
.withSchedule(simpleSchedule()
.withIntervalInHours(24) // interval is actually set at 24 hours' worth of milliseconds
.repeatForever())
.build()
http://quartz-scheduler.org/documentation/quartz-2.1.x/cookbook/DailyTrigger
答案 0 :(得分:2)
您可以使用Cron表达式。这里的教程:http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06
CronTrigger示例2 - 用于创建触发的触发器的表达式 每隔5分钟,在分钟后10秒(即上午10:00:10, 上午10:05:10等。)
" 10 0/5 * * *?"
还有一些网站帮助创建Cron表达式http://www.abunchofutils.com/utils/developer/cron-expression-helper/
表达式*/20 9-11 * * *
在9到12之间每20分钟触发一次,但它不会在12:00触发。
或者您可以使用DailyTimeIntervalScheduleBuilder
:
Trigger trigger = DailyTimeIntervalScheduleBuilder.dailyTimeIntervalSchedule()
.onEveryDay()
.startingDailyAt(TimeOfDay.hourAndMinuteOfDay(9, 0))
.endingDailyAt(TimeOfDay.hourAndMinuteOfDay(12, 0))
.withIntervalInMinutes(20)
.build();