ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 定时间点执行任务的asp.net简易解决办法

定时间点执行任务的asp.net简易解决办法

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-12-07 15:41:31 0 删除 编辑

这里的定时间点执行任务,指的是每天的某个时间执行一项任务。

比如每天凌晨七点的时候email发送一次报表。

这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容。

 

<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><%@ Application Language="C#" %>
<%@ Import Namespace="System.Threading" %>

<script runat="server">

    
//这里使用静态保持对这处Timer实例的引用,以免GC
    private static System.Threading.Timer timer = null;

    
protected void Application_Start(object sender, EventArgs e) {
        
//计算现在到目标时间要过的时间段。
        DateTime LuckTime = DateTime.Now.Date.Add(new TimeSpan(7, 0, 0));
        TimeSpan span 
= LuckTime - DateTime.Now;
        
if (span < TimeSpan.Zero) {
            span 
= LuckTime.AddDays(1d) - DateTime.Now;
        }
        
//按需传递的状态或者对象。
        object state = new object();
        
//定义计时器
        timer = new System.Threading.Timer(
            
new TimerCallback(CertainTask), state,
            span
, TimeSpan.FromTicks(TimeSpan.TicksPerDay));
    }

    
protected void Application_End(object sender, EventArgs e) {
        
//结束时记得释放
        if (timer != null) { timer.Dispose(); }
    }

    
//这里是指定时间执行的代码,必须是静态的。
    private static void CertainTask(object state) {
        
//这里写你的任务逻辑
    }

script>

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-621844/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5766194