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