【Awen】asp.net定時任務實現

iDotNetSpace發表於2008-08-19

定時任務一般都是要有個定時器來定時觸發任務的,在.net下也有幾個選擇,如System.Timers.Timer 等,程式碼示例

【Awen】asp.net定時任務實現Code

然後可以選擇在自定義HttpModule的Init方法或者Globals.aspx中的Application_OnStart 中呼叫定時器。實現也很雅觀,不過俺想到了另外一種方法,應該有人用,但是好像還沒看到這樣用的,呵呵,發出來探討探討,呵呵

那就是利用cache的快取移除通知,到這裡你應該想到了吧,首先我們對cache設定一定的過期時間,併為其新增過期的快取移除回撥,那麼當到達你設定的時間,快取過期,自動執行回撥的方法,感覺是不是也很清爽呢,最近的工作是在維護一個論壇,那就以論壇為例子,定時檢測一些及時資料,如線上人數,新帖資訊等。

首先第一次當然是讀取資料然後快取咯,這步跳過,然後放進快取,這步也跳過,加快取依賴,這步也。。。當然不能跳過啦,跳過了還怎麼定時我的任務呢,呵呵

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gtHttpContext.Current.Cache.Add("TimerReport",
                CreateReport(), 
null, DateTime.MaxValue,
                
new TimeSpan(010), 
                System.Web.Caching.CacheItemPriority.Default,
                MyCallback);

 關於快取的實用就查查msdn吧,避免copy msdn的嫌疑!這樣,每一分鐘後,MyCallback這個方法就會被呼叫,可以在裡面操作發郵件,刪除過期資訊等,是否覺得很方便呢!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-429984/,如需轉載,請註明出處,否則將追究法律責任。

相關文章