基于MemoryCache来实现的ASP.NET Web应用程序简单定时任务调度解决方案

ASP.NET MVC 2017-07-26 31阅读 0评论 0收藏 收藏本文

在ASP.NET MVC中实现简单的定时任务调度有很多方式(注:这里提到的是简单的定时任务调度解决方案,复杂的定时任务调度不在本文的涉及范围),本站之前也给读者朋友们推荐了几款关于.NET WEB应用程序实现定时任务调度的组件,包括:

今天再分享一个基于MemoryCache来实现的ASP.NET Web应用程序定时任务调度解决方案,即用MemoryCache的CacheItemRemovedCallback回调方法来实现。 先看一下核心代码:

private static CacheItemRemovedCallback OnCacheRemove = null;

protected void Application_Start(object sender, EventArgs e)
{
    AddTask("DoStuff", 60);
}

private void AddTask(string name, int seconds)
{
    OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
    HttpRuntime.Cache.Insert(name, seconds, null, 
        DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
        CacheItemPriority.NotRemovable, OnCacheRemove);
}

public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
{
    // do stuff here if it matches our taskname, like WebRequest
    // re-add our task so it recurs
    AddTask(k, Convert.ToInt32(v));
}

以上代码的实现逻辑比较简单,即在ASP.NET WEB应用程序的Appliation_Start方法中添加一个MemoryCache项,同时设置这个项的回调方法,每当MemoryCache过期时,再重复调用定时任务的方法即达到执行定时任务的目的。

好了,本文主要分享另外一种基于ASP.NET WEB应用程序的简单定时任务调度方案。

如果你觉得对你有帮助,请点个赞以鼓励笔者继续分享,谢谢。

转载请注明:图享网 » 基于MemoryCache来实现的ASP.NET Web应用程序简单定时任务调度解决方案

文章评论

获取验证码