【发布时间】:2017-07-10 07:18:38
【问题描述】:
使用 Quartz.NET,我正在尝试创建一个触发器:
- 开始 9 月 30 日,
- 在最后一天重复
- 每 5 个月。
- 能够使用
ITrigger.GetFireTimeAfter()计算/预测下一次触发时间(UI 反馈)
预期:
- 2017-9-30
- 2018-2-28
- 2018-7-31
- 2018-12-31
我想我可以使用CronTrigger(即0 0 0 L 9/5 ? *)
但预计的天数是:
- 2017-9-30
- 2018-9-30
- 2019-9-30
也无法使用CalendarIntervalTrigger:
例如,如果您选择发生在 1 月 31 日的开始时间,并且有一个单位为 Month 和间隔 1 的触发器,那么下一次触发时间将是 2 月 28 日,之后的下一次触发时间将是 3 月 28 日 -并且基本上每个后续的触发都将在每月的 28 日发生,即使存在第 31 天。如果您想要一个始终在该月的最后一天触发的触发器 - 无论该月有多少天,您都应该使用 ICronTrigger
如何安排这样的触发器?我是否必须从头开始实现自己的触发器和 IScheduler?或者有没有办法让我注入自定义计算?
谢谢
【问题讨论】:
-
这不是我每次都尝试过的东西,但可以使用 Cron Expression 0 0 0 L */5 吗? * 与 ModifiedByCalendar 和几个 CronCalender 一起排除 2017 年的 7、8、10、11、12 个月和 2018 年的 1、3、4、5、6、8、9、10、11 等月份。
标签: c# cron quartz.net