Quartz Cron Expression for 运行 从给定时间开始每 5 小时执行一次作业
Quartz Cron Expression for running a job every 5 hours from a given time
我正在使用 Quartz 库进行调度。我必须从给定时间开始每 5(可能是可变的)小时安排一次工作。
我尝试使用以下表达式 -
0 0 12/5 1/1 * ? *
我在 Cronmaker 检查了未来 运行 的输出。
安排开始时间 -> 2017 年 6 月 21 日星期二 10:30 上午
未来 运行 秒 -
- 2017 年 6 月 21 日,星期三 12:00 下午
- 2017 年 6 月 21 日,星期三 5:00 下午
- 2017 年 6 月 21 日,星期三 10:00 下午
- 2017 年 6 月 22 日星期四12:00下午
表达式按要求执行,但我希望第 4 个 运行 除了第 3 个 运行 之外还有 5 个小时,即这些方面的内容 -
- 2017 年 6 月 21 日,星期三 12:00 下午
- 2017 年 6 月 21 日,星期三 5:00 下午
- 2017 年 6 月 21 日,星期三 10:00 下午
- 2017 年 6 月 22 日星期四3:00上午
第 4 个 运行 进入第二天的 12:00 PM 触发器。我希望它被添加到最后 运行 的时间。
有什么方法可以通过 cron-expression 实现吗?
CronSchedule
不是最适合你想做的事情。
改用SimpleSchedule
:
trigger = newTrigger()
.withIdentity("yourJobName", "yourJobGroup")
.withSchedule(simpleSchedule()
.withIntervalInHours(5) // every 5 hours
.repeatForever()) // keep going in intervals of 5h
.startAt(dateOf(12, 0, 0)) // start at 12:00 PM
.build();
您可以在 official documentation 中找到更多示例。
我正在使用 Quartz 库进行调度。我必须从给定时间开始每 5(可能是可变的)小时安排一次工作。
我尝试使用以下表达式 -
0 0 12/5 1/1 * ? *
我在 Cronmaker 检查了未来 运行 的输出。
安排开始时间 -> 2017 年 6 月 21 日星期二 10:30 上午
未来 运行 秒 -
- 2017 年 6 月 21 日,星期三 12:00 下午
- 2017 年 6 月 21 日,星期三 5:00 下午
- 2017 年 6 月 21 日,星期三 10:00 下午
- 2017 年 6 月 22 日星期四12:00下午
表达式按要求执行,但我希望第 4 个 运行 除了第 3 个 运行 之外还有 5 个小时,即这些方面的内容 -
- 2017 年 6 月 21 日,星期三 12:00 下午
- 2017 年 6 月 21 日,星期三 5:00 下午
- 2017 年 6 月 21 日,星期三 10:00 下午
- 2017 年 6 月 22 日星期四3:00上午
第 4 个 运行 进入第二天的 12:00 PM 触发器。我希望它被添加到最后 运行 的时间。 有什么方法可以通过 cron-expression 实现吗?
CronSchedule
不是最适合你想做的事情。
改用SimpleSchedule
:
trigger = newTrigger()
.withIdentity("yourJobName", "yourJobGroup")
.withSchedule(simpleSchedule()
.withIntervalInHours(5) // every 5 hours
.repeatForever()) // keep going in intervals of 5h
.startAt(dateOf(12, 0, 0)) // start at 12:00 PM
.build();
您可以在 official documentation 中找到更多示例。