我正在使用 Quartz 调度程序(版本 1.8.3,由于项目限制),我被分配了为特定于我的项目的作业创建“类似 MS Outlook”的调度程序的任务。一切似乎都很好,但我对 CronTriggers 有一个非常大的问题(这个问题也存在于 Quartz 2.1 版中):
我将 CronTriggers 用于每日、每周和每月的重复模式。除了重复模式之外,我还提供了“否”选项。的发生”。这成了我人生的祸根!CronTrigger 没有像 SimpleTriggers 那样为“repeatCount”提供选项(错误:https ://jira.terracotta.org/jira/browse/QTZ-242?page=com.atlassian.jira.plugin.system.issuetabpanels%3Achangehistory-选项卡)。显然这可能会在 2.2 版中得到解决,但我不能等那么久,我也不相信我的问题是独一无二的!
我认为值得研究的几个选项:
计算 CronTrigger 的“结束时间”,但使用我自己的逻辑 - 这无法涵盖所有可能的情况,即使对于简单的情况也只能是近似值。
使用 TriggerListener 或 JobListener 来跟踪 no。作业的迭代次数,因为我只需要在“N”次迭代后停止作业,并且我有一个从作业实例到触发器的 1:1 映射。无论如何,这似乎都不是很可行和/或有效的。
任何使用过 CronTriggers 的人都可以选择“否”。请给出一些关于如何解决这个难题的见解?