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

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

 

ContractedBlock.gif ExpandedBlockStart.gif Code
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设置一定的过期时间,并为其添加过期的缓存移除回调,那么当到达你设定的时间,缓存过期,自动执行回调的方法,感觉是不是也很清爽呢,最近的工作是在维护一个论坛,那就以论坛为例子,定时检测一些及时数据,如在线人数,新帖信息等。

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

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

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


转载于:https://www.cnblogs.com/Ablog-sunny/archive/2008/08/19/1271084.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值