【发布时间】:2015-06-24 09:26:26
【问题描述】:
我们有一个托管在 IIS 8.0 上的 Intranet 应用程序。
我们有一些可用的网络方法需要在特定时间执行。
因此,我们使用 Quartz 调度器来调度作业以执行 Web 方法。在 global.asax 的 Application_Start 事件中,我们编写了启动调度器的代码。
为了让调度程序保持正常运行,应用程序池应始终处于运行模式,因此我们设置了属性 startMode=“AlwaysRunning”,并且应用程序应该已启动,因此我们设置了应用程序属性 preloadEnabled=“True” .
我们每 1740 分钟(29 小时,默认时间)回收应用程序池。
这里的问题是:
如果我有一个安排在凌晨 3:00 的工作。我的应用程序池处于运行状态。
我在预定时间前一天的下午 6:00 浏览了该应用程序。
根据回收时间,我的应用程序池在凌晨 2:00 到凌晨 3:00 被回收,我的应用程序没有被 ping,但我的应用程序池处于运行状态。
当应用程序池被回收时,应用程序池将再次启动(由于属性 startMode=“AlwaysRunning”),但如果该工作进程不同,则进程 ID。
由于应用程序池的回收,石英没有按计划执行作业。如果我在应用程序池回收后浏览应用程序,那么quartz会按计划执行作业。
谁能尽快帮我解决这个问题?
感谢期待。
【问题讨论】:
标签: quartz-scheduler quartz.net iis-8