定时任务一般都是要有个定时器来定时触发任务的,在.net下也有几个选择,如System.Timers.Timer 等,代码示例
<!--
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);
关于缓存的实用就查查msdn吧,避免copy msdn的嫌疑!这样,每一分钟后,MyCallback这个方法就会被调用,可以在里面操作发邮件,删除过期信息等,是否觉得很方便呢!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-429984/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12639172/viewspace-429984/