Quartz cron表达式 60分钟以上写法问题

a_day 发布于 2015/09/08 17:08
阅读 3K+
收藏 0

最近项目用到Quartz,由于任务比较个性化,采用了 CronExpression 表达式来定义

但是Cron表达式里面的分钟范围为 0-59

如:我想要 2015年9月8号至9号  8点至19点   每隔80分钟触发一次

1、  0 0/80 8-19 08-09 09-09 ? 2015-2015    每次都在整点运行,就是80实际上为60分钟。

2、  0 */80 8-19 08-09 09-09 ? 2015-2015    直接报错,表达式不合法。

请问有什么办法能解决这个问题么?

加载中
0
Marshmallow
Marshmallow
每隔80分钟不就是每隔1小时20分钟?
a_day
a_day
回复 @Marshmallow : 这个表达式还是行不通,跑起来还是每隔20分钟执行一次。
a_day
a_day
嗯? 多谢啊 我上到测试测一晚 明天再答谢哈!
Marshmallow
Marshmallow
回复 @a_day : 0 0/20 8-19/1 08-09 09-09 ? 2015-2015 这样不行?
a_day
a_day
嗯嗯 是的 是这个意思呢。
0
a_day
a_day

使用 CRON 表达式,无法构造超过 59 分钟的间隔,因为 60 分钟将更改整点。类似地,对于重现任务,无法指定 70 分钟或 74 分钟。变通方法是使用交错的开始时间为同一对象指定两个计划安排。

例如,假定您希望指定流程图的运行之间的间隔为 90 分钟。您可按如下方式设置两个重现计划安排。

  • 计划安排 A
    • 开始时间:上午 7 点
    • 间隔:3 小时

    此计划安排使流程图在上午 7 点、上午 10 点等依此类推的时间运行。

  • 计划安排 B
    • 开始时间:上午 8:30
    • 间隔:3 小时

    此计划安排使流程图在上午 8.30、上午 11.30 等依此类推的时间运行。

以上答案是Google出来的,希望给大家一个借鉴。
返回顶部
顶部