【发布时间】:2011-05-16 04:27:04
【问题描述】:
我想知道我是否理解正确。
http://quartznet.sourceforge.net/apidoc/
IStatefulJob 实例稍稍跟随 与常规 IJob 不同的规则 实例。关键的区别在于 他们关联的 JobDataMap 是 每次执行后重新持久化 作业,从而为 下一次执行。另一个区别 是不允许有状态的工作吗 并发执行,这意味着 之前发生的新触发器 IJob.Execute 方法的完成 会延迟。
这是否意味着所有触发器都将延迟到另一个触发器完成?如果是这样,我该如何做到这一点,以便在前一个触发器完成之前只有相同的触发器不会触发。
假设我有每分钟触发一次的触发器 A,但由于某种原因它很慢并且需要一分半钟才能执行。如果我只使用计划 IJob,下一个会触发,我不想要这个。我想阻止触发器 A 再次触发,直到它完成。
但同时我也有每分钟触发一次的触发器 B。它以正常速度运行,每分钟准时完成。我不希望触发器 B 因为触发器 A 而被搁置。
据我了解,如果我使用 IStatefulJob,会发生这种情况。
【问题讨论】:
标签: quartz-scheduler quartz.net