当前作业完成后关闭Quartz调度程序

时间:2016-05-12 10:19:17

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

我在Windows服务中使用Quartz进行作业调度。我需要在服务停止时或用户更改作业运行频率时关闭调度程序。由于我想等待执行的工作,我使用

scheduler.Shutdown(true);

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

  

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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