在我的项目中,我使用的是Quartz.net Scheduler(3.0.7(,现在有一些自动验证过程,可以读取数据库并对其进行处理,并根据一些条件生成输出,(你可以举一个电子邮件发送机制的例子,它发送从数据库读取的电子邮件并发送到各自的邮件地址(现在如果我们假设有300个请求需要处理,每个请求都需要很长时间才能完成,现在需要一个功能来暂停当前作业的执行,我想要的是,如果300个请求中的25个已经完成,而当前26个正在运行,那么作业应该完成第26次执行,但应该停止请求的其余部分。
我所尝试的是实现Quartz.net 的暂停和中断方法
即等待调度器。PauseJob(jobKey(&
等待调度程序。中断(jobKey(;
这可以暂停即将到来的执行,如果我能在作业执行类中获得任何事件或令牌,我就能实现我想要的。
IInterruptibleJob已从Quartz.net 中删除
如果有人能帮我的话。
来自迁移指南:
IInterruptableJob
接口已被删除。您需要检查IJobExecutionContext
的CancellationToken.IsCancellationRequested
,以确定是否请求了作业中断。
因此,将暂停和观察令牌结合起来应该会起作用。