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



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

我所尝试的是实现Quartz.net 的暂停和中断方法

即等待调度器。PauseJob(jobKey(&

等待调度程序。中断(jobKey(;

这可以暂停即将到来的执行,如果我能在作业执行类中获得任何事件或令牌,我就能实现我想要的。

IInterruptibleJob已从Quartz.net 中删除

如果有人能帮我的话。

来自迁移指南:

IInterruptableJob接口已被删除。您需要检查IJobExecutionContextCancellationToken.IsCancellationRequested,以确定是否请求了作业中断。

因此,将暂停和观察令牌结合起来应该会起作用。

最新更新