【问题标题】:Quartz Scheduler CronExpression unexpected calculationQuartz Scheduler CronExpression 意外计算
【发布时间】:2022-11-21 07:28:28
【问题描述】:

我正在使用 Quartz.Net 并使用 CronExpression 添加我的作业。 当我为每 9 分钟添加表达式 (0 */9 * ? * * *) 时,石英仅在第一次触发时触发正确的分钟数。

我的期望是,如果第一次开火时间是 21:45,那么下一次开火时间将是 21:54 - 22:05 等等。 但是,正如您在图像中看到的那样,在 21:54 之后,下一次开火时间是 22:00。它每小时进行相同的计算。 (你可以在图片中看到我的意思)

(https://i.stack.imgur.com/EP76j.png)

我需要什么样的 cronexpression?

【问题讨论】:

    标签: c# cron quartz.net quartz


    【解决方案1】:

    我不确定你从哪里得到 22:05,因为这既不是 21:54 或 22:00 之后的 9 分钟(21:54 + 9 分钟是 22:03,22:00 + 9 分钟是 22:09) .

    我不认为 Quartz 的 Cron Trigger 真的支持每小时运行不同的计划。使用 */9 似乎与 0/9 相同。这意味着从整点过后 0 分钟开始,然后每 9 分钟开始一次,直到整点结束。这给出了每小时过去的 00、09、18、27、36、45 和 54 分钟,这正是您得到的。因为 60 不能完全除以 9(它的余数是 6),所以您在一小时结束时得到的跑步时间只有 6 分钟。

    如果您只是想让它从启动后每 9 分钟运行一次,您可能需要 Simple Trigger 而不是 Cron Trigger

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2023-03-25
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多