【问题标题】:Quartz .net IStatefulJob - remove triggers?Quartz .net IStatefulJob - 删除触发器?
【发布时间】:2012-01-13 14:01:24
【问题描述】:

我根据石英文档创建了一个实现 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"

有没有办法移除块并杀死新触发的作业实例?

根据其背后的数据量,我正在运行的作业的运行时间可能会有很大差异,我担心如果我们有许多作业等待运行,它可能会产生负面影响...

谢谢

【问题讨论】:

    标签: c# .net quartz.net


    【解决方案1】:

    很遗憾,没有。作为工作实施者,您有责任确保该工作将跟踪其是否已达到“良好行为”的时间限制。通常不需要,因为作业需要一些预期的时间才能完成。

    当您想中断调度程序中的所有作业时也是如此,您需要实现 IInterruptableJob 并设置主作业循环监视的标志。

    您可以随时重新考虑设计。排队相同的工作应该没有问题,因为它有相同的职责。使用 misfire 指令,您可以将 misfired(排队时间过长)实例配置为丢弃并等待下一次触发时间。

    【讨论】:

      猜你喜欢
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多