ASP.Net中定时执行任务的方法

  这里的定时执行任务,指的是每天或者每个月的某个时间执行一项任务。思路有很多,如果只是对数据库数据作定时校验或者重置标识,加之又有足够的服务器配置权限,那么可以直接在SQL Server里建立维护任务,交给SQL Agent服务定期执行就好了。如果没有足够的服务器配置权限,也可以通过下面的方法来完成操作。

  通过Application_Start事件来判断时间间隔并调用相关的业务逻辑

  如果要处理的业务比较复杂,建议数据操作尽量写在存储过程中,然后写相应的调用方法来实现。这里以每天凌晨email发送一次报表为例

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

  Copy to Clipboard引用的内容:

  <%@ Application Language="C#" %> 
  <%@ Import Namespace="System.Threading" %> 
  
  <mce: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) { 
  //这里写你的任务逻辑 
  } 
  // --></mce:script>
  复制代码
 
  当然,你也可以通过WebService来实现业务逻辑
 
  void Application_Start(object sender, EventArgs e)
  {

      // 在应用程序启动时运行的代码
      System.Timers.Timer myTimer = new System.Timers.Timer(60000);
      myTimer.Elapsed += new System.Timers.ElapsedEventHandler
  (OnTimedEvent);
      myTimer.Interval = 60000;
      myTimer.Enabled = true;
      }
  private static void OnTimedEvent(object source,
  System.Timers.ElapsedEventArgs e)
    {

      localhost.WebService mysrv = new localhost.WebService();
      mysrv.CertainTask();     //调用相应的方法
    }
  复制代码
 
 
 
 
 

如何确定网站建设的定位

从企业高层决策到网站真正实现,什么是最关键的决定因素?不是网络公司或IT技术人员水平,也不是企业的资金投入多少,...

百度谷歌对于关键词排名的几个要点

百度谷歌是站长朋友最关注的两大搜索引擎,每天一大早起来做的第一件事,就是查看自己网站关键词排名的变化,时刻关注...

网站设计应该注意些什么 用眼球跟踪

你在看机器,机器也在看你。最近眼球跟踪技术诞生了不少的应用案例。比方说,Intel 研发 3D 笔记本摄像头,可以追踪眼球...



ABOUT US

米果科技是一家高速成长的互联网全网营销解决方案提供商,致力于将先进的全网营销经验融入到客户推广过程中,为企业提供网络信息化、协同办公及商务系统、精准营销、全案策划、顾问定制等多元化的互联网全方位服务。

CONTACT US

400-000-6930   010-67011800/08/38

中国•北京•朝阳区裕民路12号元辰鑫大厦E2座2411室

vip@migal.cc

Copyright©2001-2015 MIGAL CHINA. All rights reserved.

米果科技 版权所有 | 资深全网营销解决方案提供商

京ICP备08002342号 京公海网安备110108000990号

米果微信公众平台

关注米果官方微博

访问米果手机网站

链接- 网站维护 服务器维护 百度百科创建 网站维护