【Awen】asp.net定時任務實現
定時任務一般都是要有個定時器來定時觸發任務的,在.net下也有幾個選擇,如System.Timers.Timer 等,程式碼示例
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->System.Timers.Timer timer = new System.Timers.Timer(5000);
timer.AutoReset = true;
timer.Enabled = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(this.doJob);
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->System.Timers.Timer timer = new System.Timers.Timer(5000);
timer.AutoReset = true;
timer.Enabled = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(this.doJob);
然後可以選擇在自定義HttpModule的Init方法或者Globals.aspx中的Application_OnStart 中呼叫定時器。實現也很雅觀,不過俺想到了另外一種方法,應該有人用,但是好像還沒看到這樣用的,呵呵,發出來探討探討,呵呵
那就是利用cache的快取移除通知,到這裡你應該想到了吧,首先我們對cache設定一定的過期時間,併為其新增過期的快取移除回撥,那麼當到達你設定的時間,快取過期,自動執行回撥的方法,感覺是不是也很清爽呢,最近的工作是在維護一個論壇,那就以論壇為例子,定時檢測一些及時資料,如線上人數,新帖資訊等。
首先第一次當然是讀取資料然後快取咯,這步跳過,然後放進快取,這步也跳過,加快取依賴,這步也。。。當然不能跳過啦,跳過了還怎麼定時我的任務呢,呵呵
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->HttpContext.Current.Cache.Add("TimerReport",
CreateReport(), null, DateTime.MaxValue,
new TimeSpan(0, 1, 0),
System.Web.Caching.CacheItemPriority.Default,
MyCallback);
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->HttpContext.Current.Cache.Add("TimerReport",
CreateReport(), null, DateTime.MaxValue,
new TimeSpan(0, 1, 0),
System.Web.Caching.CacheItemPriority.Default,
MyCallback);
關於快取的實用就查查msdn吧,避免copy msdn的嫌疑!這樣,每一分鐘後,MyCallback這個方法就會被呼叫,可以在裡面操作發郵件,刪除過期資訊等,是否覺得很方便呢!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-429984/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 定時任務的實現
- Java如何實現定時任務?Java
- 基於redis實現定時任務Redis
- Quartz實現動態定時任務quartz
- PHP定時執行任務的實現PHP
- [筆記]laravel定時任務的實現筆記Laravel
- linux實現一個定時任務Linux
- Linux中如何實現定時任務Linux
- SpringBoot如何實現定時任務Spring Boot
- Spring+quartz 實現定時任務Springquartz
- Java定時任務實現優惠碼Java
- 使用Java實現定時任務排程Java
- ASP.NET 中的定時執行任務ASP.NET
- Laravel5.6 使用定時任務實現定時發郵件Laravel
- Laravel5.6使用定時任務實現定時發郵件Laravel
- Laravel + Workerman 實現多程式定時器任務Laravel定時器
- java springboot 實現定時器任務JavaSpring Boot定時器
- java定時任務實現的幾種方式Java
- Java實現定時任務的三種方法Java
- oracle job使用方法--實現定時任務Oracle
- 定時任務
- [奇思異想]使用RabbitMQ實現定時任務MQ
- Grails整合Quartz外掛實現定時任務(Job)AIquartz
- Spring 整合 Quartz 實現動態定時任務Springquartz
- Python實現定時任務的多種方式Python
- SpringBoot中併發定時任務的實現、動態定時任務的實現(看這一篇就夠了)Spring Boot
- C#通過rabbitmq實現定時任務(延時佇列)C#MQ佇列
- 直播系統原始碼,實現倒數計時,定時任務原始碼
- Spring Boot 實現定時任務的 4 種方式Spring Boot
- springboot整合quarzt實現動態定時任務Spring Boot
- Spring Boot系列之使用@Scheduled實現定時任務Spring Boot
- 使用者自定義定時任務的php實現PHP
- 初識spring與quartz整合實現定時任務Springquartz
- Node.js 中使用 Redis 來實現定時任務Node.jsRedis
- 定時任務scheduler
- At 、Crontabl定時任務
- crontab定時任務
- 定時任務管理