Quartz的Scheduler停止的注意点
一般来说,终止Quartz的Scheduler,只需要如下一行代码即可:
JobSchedulerManager.GetScheduler().Shutdown(true);
其中的"true"参数的声明为:bool waitForJobsToComplete
即是否等待Jobs全部完成,再终止。
但如果我们的运行Job,是7x24的特性,因为完成时间是不定的,所以仅用Quartz去管理与监控它,而并不通过Quartz按时调度,所以一般通过如下代码运行工作:
1
while(true)
2
{
3
DoJob();
4
Thread.Sleep(SLEEPTIME);
5
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
这种时候Shutdown方法就不能使用true作为参数值了,因为这样的话,永远也终止不了。
所以只能使用:
JobSchedulerManager.GetScheduler().Shutdown(false);
即不等待任务完成,即立即关闭Scheduler.
这个参数的存在,多少体现了Quartz作者的细心:)