【问题标题】:Shutdown Quartz scheduler after current jobs complete当前作业完成后关闭 Quartz 调度程序
【发布时间】:2016-05-13 13:49:34
【问题描述】:

我正在使用 Quartz 在 Windows 服务中进行作业调度。当服务停止或用户更改作业运行的频率时,我需要关闭调度程序。因为我想等待正在执行的作业,所以我使用了

scheduler.Shutdown(true);

我在这两种情况下都得到了例外:

Quartz.UnableToInterruptJobException: Job 'myJob' 不能 中断,因为它没有实现 Quartz.IInterruptableJob

正在运行的服务无法停止,这很糟糕。

但是工作中断意味着不等待工作完成?所以,不是我想要的?虽然它会解决当前的异常问题。

什么是正确的实现不会导致shutdown 崩溃?

如果我真的需要实现 IInterruptableJob,这是怎么做的呢?我没有找到关于这个的教程,我真的不想做任何不同于标准关机的事情。我正在使用标准调度程序工厂来创建调度程序:

schedulerFactory = new StdSchedulerFactory();
scheduler = schedulerFactory.GetScheduler();

【问题讨论】:

    标签: java c# quartz-scheduler quartz.net job-scheduling


    【解决方案1】:

    我找到了如何中断工作...我只需要实现IInteruptableJob 接口,而interrupt 方法什么都不做。 This这个帖子对我帮助很大!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多