Quartz.net IStatefulJob-删除触发器

本文关键字:触发器 删除 IStatefulJob- net Quartz | 更新日期: 2023-09-27 18:20:05

我创建了一个实现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"

是否有任何方法可以移除块并杀死新启动的作业实例?

根据背后的数据量,我正在运行的作业可能会有非常不同的运行时间,我担心如果我们有很多作业等待运行,可能会产生负面影响。。。

感谢

Quartz.net IStatefulJob-删除触发器

不幸的是,没有。作为作业实施者,你有责任确保作业跟踪它是否达到了"良好行为"的时间限制。通常没有必要,因为工作需要一些预期的时间才能完成。

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

你可以随时重新思考设计。将相同的作业排队应该没有问题,因为它有相同的职责要做。使用失火指令,您可以将失火(排队时间过长)实例配置为丢弃,然后等待下一次点火时间。