基於MemoryCache來實現的ASP.NET Web應用程序簡單定時任務調度解決方案

在ASP.NET MVC中實現簡單的定時任務調度有不少方式(注:這裏提到的是簡單的定時任務調度解決方案,複雜的定時任務調度不在本文的涉及範圍),本站以前也給讀者朋友們推薦了幾款關於.NET WEB應用程序實現定時任務調度的組件,包括:mvc

今天再分享一個基於MemoryCache來實現的ASP.NET Web應用程序定時任務調度解決方案,即用MemoryCache的CacheItemRemovedCallback回調方法來實現。
先看一下核心代碼:spa

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過時時,再重複調用定時任務的方法即達到執行定時任務的目的。code

好了,本文主要分享另一種基於ASP.NET WEB應用程序的簡單定時任務調度方案。rem

<span style="color:red">若是你以爲對你有幫助,請點個贊以鼓勵筆者繼續分享,謝謝。</span>get

本文同步發表至碼友網 : 基於MemoryCache來實現的ASP.NET Web應用程序簡單定時任務調度解決方案同步

相關文章
相關標籤/搜索