当前作业完成后关闭石英调度程序
问题描述:
我正在Quartz中使用Windows服务中的作业调度。当服务停止或用户更改作业的运行频率时,我需要关闭调度程序。因为我想等待执行的工作,我用当前作业完成后关闭石英调度程序
scheduler.Shutdown(true);
我在这两种情况下得到异常:
Quartz.UnableToInterruptJobException:招聘“myJob”不能是 中断,因为它不执行Quartz.IInterruptable工作
正在运行的服务不能停止,这是非常糟糕的。
但是工作中断意味着不等待工作完成?那么,不是我想要的?虽然它会解决当前的异常问题。
什么是正确的实现不会导致shutdown
崩溃?
如果我真的需要实施IInterruptableJob,这是如何完成的?我没有找到关于这个的教程,我真的不想做任何不同于标准关机的东西。我使用的是标准的调度工厂调度创造:
schedulerFactory = new StdSchedulerFactory();
scheduler = schedulerFactory.GetScheduler();