【问题标题】:Quartz .net - Abort/Stop Current Execution of Job & Pause All the triggersQuartz .net - Abort/Stop Current Execution of Job & Pause 所有触发器
【发布时间】:2018-12-13 11:47:37
【问题描述】:

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

我尝试的是实现 Quartz.net 的 Pause 和 Interrupt 方法

即等待调度程序.PauseJob(jobKey); &

等待 scheduler.Interrupt(jobKey);

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

IInterruptableJob 已从 Quartz.net 中删除

如果有人可以帮助我。

【问题讨论】:

    标签: quartz-scheduler quartz.net


    【解决方案1】:

    来自migration guide

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

    所以结合暂停和观察令牌应该可以工作。

    【讨论】:

      猜你喜欢
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多