【问题标题】:how to generate Cron expression for special day?如何为特殊的日子生成 Cron 表达式?
【发布时间】:2012-04-15 21:50:26
【问题描述】:

这是一个有趣的问题。我正在使用 Quartz.net 来制作作业调度程序。 CronMaker 也有助于理解 crontrigger 表达式。但我想生成特殊的日子触发器。例如: 示例 1:

每 15 分钟的运行时间:
03.04.2012 13:45(开始时间)

03.04.2012 14:00(下次运行时间)

还有 例 2:

只有一个工作:03.04.2012(13:45 只有一个)

如何编写EXAMPLE1和EXAMPLE2 cron表达式?

【问题讨论】:

标签: c# .net quartz-scheduler quartz.net cronexpression


【解决方案1】:

示例 1:每 15 分钟的运行时间从 13:45:00 开始,仅在 2012 年 4 月 3 日运行

创建 2 个 Cron 表达式:

  • 运行时间为 2012 年 4 月 3 日 13:45:00,并且只运行一次

0 45 13 3 APR ? 2012

  • 自 2012 年 4 月 3 日 14:00:00 以来的运行时间,每 15 分钟重复一次,仅在 2012 年 4 月 3 日运行

0 /15 14-23 3 APR ? 2012


示例 2:运行时间为 2012 年 4 月 3 日 13:45:00,并且只运行一次

0 45 13 3 APR ? 2012

示例 3:每 15 分钟从 03.04.2012 13:45:00 到 12.04.2012 15:45:00 的运行时间

它可以溢出到以下触发器中:

  • 对于 03.04.2012 ,使用示例 1 中的两个触发器

  • 对于 04.04.2012 - 11-04.2012,请使用

 0 /15 * 4-11 APR ? 2012
  • 对于 12.04.2012 ,请使用以下触发器

0 /15 0-15 12 APR ? 2012

为简单起见,我将使用CronTriggerImpl 来构建此计划,因为它包含设置 cron 表达式的开始时间和结束时间的方法。

通过这种方式,我可以制作始终重复 15 分钟的 cron 表达式,并设置开始时间和结束时间以限制此计划在定义的日期范围内执行。

【讨论】:

  • 我真的想说更多的谢谢。但是* 45 13 3 APR? 2012 正在每秒工作。如何改善这个问题?我还有一个小问题:从 03.04.2012 13:45 TO 12.04.2012 15:45 PER 15 minutes 怎么做?
  • 你的孤子很好。但我想你误解了我:“从 03.04.2012 14:00:00 到 03.04.2012 15:45:00 的运行时间,每 15 分钟重复一次”你写道。但我的最后一次运行时间从 03.04.2012 13:45:00 到 12.04.2012 15:45:00 每 15 分钟。我想它一定是:0 0,15,30,45 14-15 3-12 APR? 2012. 你确定吗?
  • 从 03.04.2012 12:30 到 12.07.2013 17:40 每 5 分钟:0 /5 12-17 3-7 APR-JUL2012-2013 是真的吗?或任何解决方案?
  • 不,至少它不会在 JAN、FEB、MAR、AUG、SEPT .... 运行,也不会在每天晚上 17:00 到 23:59 运行。实际上,我认为在这种情况下,您可以应用与EXAMPLE3 相同的逻辑将计划拆分为几个cron 表达式。另外,我觉得应该对你有帮助:quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/…
  • 肯;真的非常感谢:(坚果我有最后一个问题:0 0/1 14-17 3-20 APR?2012 的意思是从 03.04.2012 到 20.04.2012 是吗?
猜你喜欢
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多