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

问题描述:

我正在Quartz中使用Windows服务中的作业调度。当服务停止或用户更改作业的运行频率时,我需要关闭调度程序。因为我想等待执行的工作,我用当前作业完成后关闭石英调度程序

scheduler.Shutdown(true); 

我在这两种情况下得到异常:

Quartz.UnableToInterruptJobException:招聘“myJob”不能是 中断,因为它不执行Quartz.IInterruptable工作

正在运行的服务不能停止,这是非常糟糕的。

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

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

如果我真的需要实施IInterruptableJob,这是如何完成的?我没有找到关于这个的教程,我真的不想做任何不同于标准关机的东西。我使用的是标准的调度工厂调度创造:

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

我发现如何中断的工作......我根本就实现IInteruptableJob接口,与interrupt方法什么都不做。 This后帮了我很多!