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

时间:2018-12-13 11:47:38

标签: quartz-scheduler quartz.net

在我的项目中,我正在使用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中删除

如果有人可以帮助我

1 个答案:

答案 0 :(得分:0)

来自migration guide

  

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

因此结合使用暂停和观察令牌应该可以。

相关问题