应用程序池回收后,Quartz调度程序不执行作业(.Net)

时间:2015-06-24 09:26:26

标签: quartz-scheduler quartz.net iis-8

我们在IIS 8.0上托管了一个Intranet应用程序。

我们有一些可用的网络方法需要在特定时间执行。

因此,我们使用Quartz调度程序来安排执行Web方法的作业。在global.asax的Application_Start事件中,我们编写了启动调度程序的代码。

为了使调度程序保持运行,应用程序池应始终处于运行模式,因此我们设置了属性startMode =“AlwaysRunning”,并且应该启动应用程序,因此我们设置了应用程序属性preloadEnabled =“True”

我们每隔1740分钟(29小时,默认时间)回收应用程序池。

这里的问题是:

如果我的工作安排在凌晨3点。我的应用程序池处于运行状态。

我已经在预定时间前一天的下午6点浏览了该应用程序。

根据回收时间,我的应用程序池已在凌晨2点回收,直到凌晨3点,我的应用程序未被ping,但我的应用程序池处于运行状态。

当回收应用程序池时,将再次启动应用程序池(因为属性startMode =“AlwaysRunning”),但是如果该工作进程不同,则为进程ID。

由于应用程序池石英的回收未按计划执行作业。如果我在回收应用程序池后浏览应用程序,那么quartz将按照计划执行该作业。

最早有人可以帮我解决这个问题吗?

感谢您的期待。

1 个答案:

答案 0 :(得分:3)

如果您的IIS 8.0在Sever 2012操作系统上运行,则需要启用“应用程序初始化”#39;特征。
请访问this link了解更多信息。
只有在添加了该功能后,该属性才会出现“预载”和“真正的"'会有效的。
如果您在任何其他操作系统上遇到此问题,请告诉我。 希望这会有所帮助。