Quartz .net - Abort/Stop 当前执行作业并暂停所有触发器

Quartz .net - Abort/Stop Current Execution of Job & Pause All the triggers

在我的项目中,我正在使用 Quartz.net Scheduler (3.0.7),现在有一些自动验证过程可以读取数据库并处理它并根据少数条件生成输出,(您可以举个例子发送电子邮件的电子邮件发送机制从数据库读取并发送到各自的邮件地址)现在如果我们假设有 300 个请求要处理并且每个请求都需要很长时间才能完成,现在需要一个功能来暂停当前的执行工作,我想要的是,如果从 300 个请求中完成了 25 个,而当前 26 个是 运行,那么该工作应该完成第 26 次执行,但应该停止其余的请求。

我尝试的是实现Quartz.net

的暂停和中断方法

即等待 scheduler.PauseJob(jobKey); &

等待scheduler.Interrupt(jobKey);

可以暂停即将到来的执行,如果我可以将任何事件或令牌放入作业执行中Class,我可以实现我想要的。

IInterruptableJob 已从 Quartz.net

中删除

如果有人可以帮助我。

来自migration guide

IInterruptableJob interface has been removed. You need to check for IJobExecutionContext’s CancellationToken.IsCancellationRequested to determine whether job interruption has been requested.

因此结合暂停和观察令牌应该可行。