【发布时间】: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