Java 石英:每天,仅从9:00到12:00

Java 石英:每天,仅从9:00到12:00,java,quartz-scheduler,Java,Quartz Scheduler,阅读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(simpleS

阅读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()

您可以使用Cron表达式。此处有教程:

CronTrigger示例2-用于创建触发的触发器的表达式 每5分钟,分钟后10秒(即上午10:00:10, 上午10:05:10等)

“10 0/5***”

还有一些网站帮助创建Cron表达式

表达式
*/20 9-11***
在9到12之间每隔20分钟触发一次,但不会在12:00触发


或者您可以使用
DailyTimeIntervalsScheduleBuilder

Trigger trigger = DailyTimeIntervalScheduleBuilder.dailyTimeIntervalSchedule()
        .onEveryDay()
        .startingDailyAt(TimeOfDay.hourAndMinuteOfDay(9, 0))
        .endingDailyAt(TimeOfDay.hourAndMinuteOfDay(12, 0))
        .withIntervalInMinutes(20)
        .build();

多亏了托马斯兹,你的anwser已经完成了。