当前位置: 首页 > 知识库问答 >
问题:

石英克朗表达式,用于从给定时间起每5小时运行一次作业

孟高峰
2023-03-14

我正在使用Quartz库进行调度。我必须从给定时间开始每5小时(可能是可变的)安排一项工作。

我尝试使用以下表达式-

0 0 12/5 1/1*?*

我检查了克朗马克未来运行的输出。

安排开始时间-

未来运行-

  1. 星期三,六月21, 2017 12:00下午
  2. 星期三,六月21, 2017 5:00下午
  3. 星期三,六月21, 2017 10:00下午
  4. 星期四,六月22, 2017 12:00下午

这个表达式按照要求执行,但我希望第四次运行是在第三次运行的基础上再运行5个小时,也就是说沿着这些路线运行-

  1. 2017年6月21日星期三下午12:00
  2. 2017年6月21日星期三下午5:00
  3. 2017年6月21日星期三晚上10:00
  4. 2017年6月22日星期四凌晨3:00

第四轮将在第二天下午12点触发。我想把它加到最后一次跑步的时间里。有没有什么方法可以通过cron表达式实现这一点?

共有1个答案

韦飞尘
2023-03-14

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();

你可以在官方文件中找到更多的例子。

 类似资料: