在我的项目中,我正在使用Quartz.net Scheduler(3.0.7),现在有一些自动验证过程,可以读取DB并对其进行处理,并根据几种条件生成输出,(您可以使用Email Sending Mechanism的示例它将发送从数据库读取的电子邮件并发送到相应的邮件地址)现在,如果我们假设有300个请求要处理,并且每个请求都将花费很长时间才能完成,那么现在需要一种功能来暂停作业的当前执行,即想要的是,如果从300个请求中完成了25个,并且当前有26个正在运行,那么该作业应完成第26个执行,但应停止其余请求。
我试图实现Quartz.net的Pause和Interrupt方法
即等待scheduler.PauseJob(jobKey); &
等待scheduler.Interrupt(jobKey);
可以暂停即将执行的任务,如果我可以将任何Event或Token放入Job Execution Class,我可以实现我想要的。
IInterruptableJob已从Quartz.net中删除
如果有人可以帮助我
答案 0 :(得分:0)
IInterruptableJob接口已被删除。您需要检查IJobExecutionContext的CancellationToken.IsCancellationRequested,以确定是否已请求作业中断。
因此结合使用暂停和观察令牌应该可以。