在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應用程序簡單定時任務調度解決方案同步