【发布时间】:2014-02-09 07:17:52
【问题描述】:
从 2014 年 1 月 1 日开始,为期 2 周的时间安排如下:
- 1 月 14 日
- 1 月 28 日
- 2 月 11 日
- 2 月 25 日
- 3 月 11 日
- 3 月 25 日
- 4 月 8 日
- 4 月 22 日
- 5 月 6 日
- 5 月 20 日
等等……
这不是一个无聊的问题。一些公司的支付期正好是 2 周,这意味着他们每年有 26 个支付期,而不是每月支付两次而不是每两周支付一次的公司有 24 个支付期。我想知道我是否可以使用 CRON 表达式来表达这种公司的工资表。
最后,可能没有 CRON 表达式可以用来表达我想要的,但是 Quartz 调度器可能有一些棘手的解决方案,最终可以产生所需的调度。请注意,我始终可以创建具有 26 个显式触发器的日历调度程序 - 每个支付期一个。我不是在谈论这种解决方案。
我正在使用 Quartz 库的 .NET 端口。
编辑
恰好每隔一个星期日,同样好的日程安排。请注意,它不等同于每个第 2 和第 4 个星期日。实际上,如果一个月有 5 个星期日,那么如果从第一个星期日开始,第一个时间表可能会导致该特定月份的三个实例。而第二个计划总是每月恰好产生两个实例。
我觉得这样的时间表无法用 CRON 表示,因为它们会逐月延续,而 CRON 会在每次新月份开始时重置其月份触发器。
EDIT2
我想我正在寻找的可以通过一个虚构的 DayOfYear CRON 字段来表达。海拉斯,不存在这样的东西。但话又说回来,我可能错了。
【问题讨论】:
标签: cron quartz-scheduler quartz.net cronexpression