【问题标题】:Quartz-scheduler scheduling job every 2 weeks ignoring previous misfiresQuartz-scheduler 每 2 周调度一次作业,忽略之前的故障
【发布时间】:2018-10-26 13:41:14
【问题描述】:

我正在尝试每隔 2 周在给定的一天(用户定义)安排一项工作,并使用 Quartz-Scheduler 忽略和以前的失败。

例如: 如果我将开始日期设置为 10 月 7 日(星期日),而今天的日期是 10 月 26 日,它应该在 11 月 4 日(星期日)、11 月 18 日(星期日)触发...

我发现这样做的唯一方法是将WithCalendarIntervalSchedule 扩展名与StartAt 一起使用。这种方法的问题是,如果开始日期早于今天,那么在安排触发器时将触发所有失火。

Cron 表达式和 CronScheduleBuilder 似乎不允许这样做。

我不能忽略失火,因为我不希望因任何原因未能按时启动的触发器被忽略。 而且我不能强制开始日期在今天之后。

如果我遗漏了什么,请告诉我,这几天我一直在寻找解决方案。

【问题讨论】:

    标签: c# quartz.net


    【解决方案1】:

    事实证明 Quartz 调度器不能很好地支持每 2 周的调度。

    使其工作的技巧是将开始日期设置为应该使用 StartAt 扩展触发的下一个 DateTime,然后将 WithCalendarIntervalSchedule 与 WithIntervalInWeeks 一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      相关资源
      最近更新 更多