【问题标题】:Quartz Scheduler Cron Expression with frequency as specific hour and minute频率为特定小时和分钟的 Quartz 调度程序 Cron 表达式
【发布时间】:2017-07-30 05:20:22
【问题描述】:

我正在尝试在 java 中使用石英构建一个 cron 表达式。我得到两个参数,分别是小时和分钟,我必须每小时和每分钟安排一次工作。 到目前为止,我已经尝试过: 示例 1:- 安排作业每 1 小时 10 分钟运行一次。 - 我在这个例子中使用了 cron 表达式为“0 */10 */1 * * ?”。 - 但这项工作每 10 分钟运行一次,而不是 1 小时 10 分钟。

谁能帮我理解为什么这个表达式不起作用? 提前致谢。

【问题讨论】:

    标签: java quartz-scheduler


    【解决方案1】:

    您的 cron 表达式将每 10 分钟运行一次,因为这就是第一个 */10 的含义。第二个*/1 是多余的,因为由于第一个*/10,它无论如何都会运行。

    我不清楚您要做什么 - 重复的时间表可能很难清楚地表达,所以我倾向于写下一些示例并从那里开始工作。

    您是否想获得如下模式:

    1. 01:10
    2. 02:10
    3. 03:10

    如果是这样,我认为0 10 * * * ? 应该可以胜任。我用来理解表达式的文档位于 http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html,我还发现 http://www.cronmaker.com/ 非常有助于检查表达式的完整性 - 它会为您计算出接下来的几个触发时间。

    实现每 1:10 以固定速率发射,即

    1. 1:10
    2. 2:20
    3. 3:30

    以 1:10 的间隔尝试 SimpleTrigger

    【讨论】:

    • 您好 Brabster,我尝试了上面的 cron 表达式,它对于您提到的模式运行良好。但我想得到这样的模式:1. 01:10 2. 02:20 3. 03:30
    • 我不确定您是否可以使用单个 cron 表达式来表达这一点 - 它实际上是在 1:10 的固定间隔内触发的。如果出于某种原因使用 cron 很重要,您可以使用几个表达式来执行此操作,一个用于 10 小时后的触发器,另一个用于 20 小时后的触发器,等等。如果您想要简单易懂的东西,另一种触发器可能会更好 - SimpleTrigger 支持以简单的间隔触发,例如quartz-scheduler.org/documentation/quartz-2.x/tutorials/…
    • @Aniruddha 我已经更新了我的答案以包括 SimpleTrigger 建议 - 一个赞成票(因为有帮助)和接受(因为解决了问题)我的答案是我们在 StackOverflow 上做事的方式:)
    • 我为您的回答投了赞成票,该回答在内部被接受。仅当我的声望高于或等于 15 时,投票才会可见。再次感谢您的帮助。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2013-12-09
    • 2019-11-18
    • 2022-01-23
    • 2018-06-04
    相关资源
    最近更新 更多