asp.net定时任务实现(原创)

定时任务一般都是要有个定时器来定时触发任务的,在.net下也有几个选择,如System.Timers.Timer 等,代码示例

 

Code

然后可以选择在自定义HttpModule的Init方法或者Globals.aspx中的Application_OnStart 中调用定时器。实现也很雅观,不过俺想到了另外一种方法,应该有人用,但是好像还没看到这样用的,呵呵,发出来探讨探讨,呵呵

那就是利用cache的缓存移除通知,到这里你应该想到了吧,首先我们对cache设置一定的过期时间,并为其添加过期的缓存移除回调,那么当到达你设定的时间,缓存过期,自动执行回调的方法,感觉是不是也很清爽呢,最近的工作是在维护一个论坛,那就以论坛为例子,定时检测一些及时数据,如在线人数,新帖信息等。

首先第一次当然是读取数据然后缓存咯,这步跳过,然后放进缓存,这步也跳过,加缓存依赖,这步也。。。当然不能跳过啦,跳过了还怎么定时我的任务呢,呵呵

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

 关于缓存的实用就查查msdn吧,避免copy msdn的嫌疑!这样,每一分钟后,MyCallback这个方法就会被调用,可以在里面操作发邮件,删除过期信息等,是否觉得很方便呢!就权当奇淫技巧吧,哈哈哈。。。。


posted @ 2008-08-19 13:33  Awen  阅读(4825)  评论(12编辑  收藏  举报