我在MVC应用程序中使用了Quartz时间表,该应用程序从application_start开始,我在IIS上部署了该应用程序,以防万一服务器崩溃然后重新启动,如何使我的应用程序自动运行,从而使时间表自动重新启动>
这是我第一次在任何服务器上部署Quartz应用程序
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
JobScheduler.Start();
}
答案 0 :(得分:0)
如果服务器崩溃,则在下一个http请求上,您的应用程序将再次启动。然后,您的JobSchedular
会像第一次运行一样再次恢复。什么也没做。
但是,问题是服务器崩溃时您的AppPool是否会重新启动。服务器崩溃不是正常情况,不应预期会发生。不仅崩溃场景而且AppPool都将回收-整个Web应用程序将在下一个http请求时再次启动。
我建议在IIS AppPool设置中将Idle Time-out Action
设置为暂停,而不是默认的 Terminate 。
服务器恢复后,如果您不想等到下一个http请求,则必须钩住外部触发器以启动应用程序启动。您可以通过Windows计划作业(会访问您网站的网址)或第三方服务来定期执行此操作。
崩溃后,如果AppPool关闭(停止),则您无法从Web应用程序代码中执行任何操作。