我在ASP.NET MVC 4项目中使用Fluent Scheduler
。我想创建一个每天凌晨4点运行的调度程序。这是我的代码:
服务
public class ParseService : Registry
{
public ParseService(string path)
{
Schedule(() => ParseHelper.ParseData(path)).ToRunEvery(1).Days().At(4, 0);
}
}
的Global.asax.cs
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
Application["LogPath"] = Server.MapPath("~/Areas/Admin/LogFiles/");
TaskManager.Initialize(new ParseService(Application["LogPath"].ToString()));
}
}
问题是调度程序只运行一次。如果我希望它在凌晨4点再次运行,我必须重新启动IIS服务器。有谁知道我的代码有什么问题?请帮我。非常感谢。
答案 0 :(得分:2)
问题是第一次执行它的应用程序池已自动回收。您需要将应用程序池配置为活着,如果这确实是您想要的。
以下是how to configure that的精彩教程。
但是,我也同样要注意这一点。这更适合作为Windows服务或使用Windows任务计划程序启动的控制台应用程序。