java - Java Quartz-时间之间的调度器
问题描述
我有一份工作,我想在每天的特定时间(例如上午 8 点至上午 10 点,间隔 5 分钟)开始使用石英调度程序(v2.1.5),不使用 cron 表达式,只使用本机方法。(通过我理解的本地方法在该石英库中实现)。我有触发器:
TriggerBuilder builder = TriggerBuilder.newTrigger()
.withIdentity(name, group)
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInMilliseconds(interval)
.repeatForever());
当然,cron 表达式很困难,我可以使用它来代替。但无论如何,我只想知道是否可以在该问题中使用本机方法。乐于接受任何建议!
解决方案
这是Quartz 教程中的一个示例(稍作修改):
var cal = new DailyCalendar(8, 0, 0, 0, 10, 0, 0, 0); // range start and end hours, minutes, seconds and millis
cal.setInvertTimerange(true); // by default the date interval specified above is excluded from execution.
// This turns it around and only allows execution within the interval
var t2 = TriggerBuilder.newTrigger()
.withIdentity("myTrigger2")
.forJob("myJob2")
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInMilliseconds(interval)
.repeatForever());
.modifiedByCalendar(cal)
.build();
诀窍是有一个简单的触发器(如上面所示),然后有一个日历实现,可以指定允许执行该触发器的时间。