2015-06-24 49 views
3

我们有一个托管在IIS 8.0上的Intranet应用程序。Quartz调度程序在应用程序池回收后不执行作业(.Net)

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

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

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

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

这里的问题是:

如果我有计划在早上3:00工作。我的应用程序池处于运行状态。

我在计划时间前一天的下午6:00浏览了应用程序。

根据回收时间,我的应用程序池已在2:00 AM和3:00 AM回收,但我的应用程序未被ping通,但我的应用程序池处于运行状态。

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

由于应用程序池石英的回收没有按照时间表执行该作业。如果我在应用程序池回收后浏览应用程序,则石英将按照时间表执行作业。

任何人都可以在最早的时候帮助我吗?

感谢您的期待。

回答

3

如果您的IIS 8.0在Sever 2012操作系统上运行,您将需要打开“应用程序初始化”功能。
请访问this link了解更多信息。
后,才加入,该属性的功能“preloadEnabled =“真“”​​将是有效的。
请让我知道如果你是在任何其他操作系统面临这个问题。 希望这有助于。

+0

感谢队友。它起作用了。启用此功能后,调度程序不会中断任何工作。 –

相关问题