【问题标题】:java quartz cron expression with hh:mm start/end time and every X minutes带有 hh:mm 开始/结束时间和每 X 分钟的 java 石英 cron 表达式
【发布时间】:2013-01-16 15:58:57
【问题描述】:
我正在尝试创建一个 cron 表达式,该表达式将根据我得到的时间以及每 X 分钟触发一次作业。开始/结束时间和分钟间隔都是我从用户那里得到的参数。例如:
开始时间:09:15
结束时间:19:35
分钟间隔:15
我希望作业在 09:15 开始,每 15 分钟触发一次,所以最后一个作业实际上是在 19:30(因为不能在 19:35 之后)。
我的问题是我不知道如何包含开始/结束时间的分钟数..
怎么可能创造出这种表达方式?
提前致谢。
【问题讨论】:
标签:
quartz-scheduler
cronexpression
【解决方案1】:
我认为单个 cron 表达式不可能满足您的要求,因为每个时间组件(小时/分钟/秒等)都是独立处理的。
也许最简单的方法是每 15 分钟运行一次触发器,并在 09:15 和 19:35 启用/禁用此触发器(例如,使用其他触发器)。
或者,您可以每 15 分钟触发一次触发器,并附加到此触发器的程序逻辑在执行任何工作之前检查当前时间是否在 09:15 到 19:35 之间。
【解决方案2】:
您不需要 CRON,只需简单的触发器即可。查看Lesson 5: SimpleTrigger。这应该适用于您的情况:
trigger = newTrigger()
.startAt(nineFifteen)
.endAt(nineteenThirtyFive)
.withSchedule(simpleSchedule().withIntervalInMinutes(15))
.forJob(someJob)
.build();