我正在尝试创建一个cron表达式,它将根据我获得的时间和每X分钟触发一个作业。开始/结束时间和分钟间隔都是我从用户那里得到的参数。例如:
开始时间:09:15 结束时间:19:35 分钟间隔:15
我希望这份工作在09:15开始并且每15分钟被触发一次,所以最后一份工作实际上是在19:30(因为它不能在19:35之后)。 我的问题是我不知道如何包括开始/结束时间的分钟..
如何创建这种表达式?
提前谢谢。
答案 0 :(得分:0)
我不认为可以在单个cron表达式中满足您的要求,因为每个时间组件(小时/分钟/秒等)都是独立处理的。
最简单的方法可能是每15分钟运行一次触发器,并在09:15和19:35启用/禁用此触发器(例如使用其他触发器)。
或者你可以每15分钟触发一次触发器,并且附加到此触发器的程序逻辑会在执行任何工作之前检查当前时间是否在09:15和19:35之间。
答案 1 :(得分:0)
你不需要CRON,简单的触发就行了。查看Lesson 5: SimpleTrigger。这应该适合您的情况:
trigger = newTrigger()
.startAt(nineFifteen)
.endAt(nineteenThirtyFive)
.withSchedule(simpleSchedule().withIntervalInMinutes(15))
.forJob(someJob)
.build();