2012-01-10 26 views
0

我创建了一个实现IStatefulJob并根据石英文档Quartz .net IStatefulJob - 删除触发器?

"if a job is stateful, and a trigger attempts to 'fire' the job while it is already 
executing, the trigger will block (wait) until the previous execution completes" 

反正是有办法去除阻止和杀死作业的新发射实例中的作业?

我正在基于其背后的数据量可以有很大的不同的运行时间,我很担心,如果我们有一些等待运行,它可能有负面影响作业的作业...

谢谢

回答

1

不幸的是没有。作为一名工作实施者,您有责任确保该工作能够跟踪其是否已达到“良好行为”的时限。通常情况下,没有必要因为工作需要一定的时间完成。

当您要中断调度程序中的所有作业时,您也需要执行IInterruptableJob并设置主作业循环监视的标志。

您可以随时重新考虑设计。排队同样的工作不应该成为问题,因为它有相同的职责。在失火指示中,您可以配置失火(排队时间过长)实例以废弃并等待下一次着火时间。