在B/S系统中引入定时器的功能

2016-01-29 19:57 21 1 收藏

在B/S系统中引入定时器的功能,在B/S系统中引入定时器的功能

【 tulaoshi.com - ASP 】

过去的一些使用ASP技术开发的B/S系统中,需要系统定时执行一些方法时一直都
找不到好的解决方案(如果有,那一定是我浅薄了,我们讨论讨论)。
现在在ASP。NET中可以使用自定义实现IHttpModule接口的类来加载一个定时器。
public class OilIHttpModule : IHttpModule 
{
 public static Timer analyseTimer;//分析数据的定时器
 static int intLastTrialInfo_id;//最后分析的ID
 static long intAnalyseInterval= 10000;//间隔的时间
 public OilIHttpModule()
 { }
 public String ModuleName
 {
  get { return "OilModule"; }
 }
 ///初始化模型
 public void Init(HttpApplication application)
 {
  application.BeginRequest += (new EventHandler
(this.Application_BeginRequest));
//增加处理请求时触发的事件
  if(intLastTrialInfo_id==0)
  { //获取最后分析的
   trialInfo_id intLastTrialInfo_id =
globalMethod.getLastAnalyseTrialInfo_id();
  }
  //判断Timer是否存在,如果没有则实例化
  if(analyseTimer==null)
   analyseTimer = new Timer(new TimerCallback(analyseData),null,
intAnalyseInterval,intAnalyseInterval);
 }
 private void Application_BeginRequest(Object source, EventArgs e) 
 {
  //null
  // HttpApplication application = (HttpApplication)source;
  // application.Response.Write(intLastTrialInfo_id.ToString());
 }
 ///要定时执行的程序片段
 private void analyseData(object obj)
 {
  ///很重要,可以防止定时器被重新生成
  analyseTimer.Change( System.Threading.Timeout.Infinite,
intAnalyseInterval );
  // StatsInterval
  int intTrialInfo_idAfterUpdate;
  intTrialInfo_idAfterUpdate =
globalMethod.AnalyseTrialFromTrialInfo_id(intLastTrialInfo_id);
  if(intTrialInfo_idAfterUpdate intLastTrialInfo_id)
  {
   intLastTrialInfo_id = intTrialInfo_idAfterUpdate;
  }
 }
 public void Dispose()
 {
  analyseTimer = null;
}

来源:http://www.tulaoshi.com/n/20160129/1510456.html

延伸阅读
Timer类:设置一个定时器,定时执行用户指定的函数。 定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。 初始化一个Timer对象: Timer timer = new Timer(timerDelegate, s,1000, 1000); // 第一个参数:指定了TimerCallback 委托,表示要执行的方法; // 第二个参数:一个包含回调方法要使用的信息的对象,或者为空引用;...
实现定时器有很多种方式,在这里我简单的介绍几种方式 (1)使用Handler + Runnable的方式 代码如下: Handler handler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { //你要做的事 //...... System.out.println(Thread.currentThread().getName()); handler.postDelayed(runnable, 1000); ...
标签: 电脑入门
对于初学者来说,Linux系统命令是主要学习的内容,在Linux众多命令中,有些命令可定时运行,下面图老师小编就给大家详细介绍下Linux中定时运行命令的用法,一起来了解下吧。 1.命令简介 每个用户都有各自不同的计划任务列表,用各自的帐户登录后运行 代码如下: crontab -l 就可查看到各任务的计划任务情况,使用下列命令可以修改自...
在win7系统中怎么关闭系统更新功能   系统更新功能基本上是每个windows系统都会自带的功能,一般情况下win7系统的自动更新功能是默认开启的,所以有时候系统在后台更新的时候会占用我们的数据和资源,如果想要系统运行的顺畅,最好还是关闭这项功能,然后让自己在空闲的时候再进行系统的更新。下面就让图老师小编来给大家介绍下在win7...
基于S3c4510b芯片的系统中的地址重映射的实现   基于S3c4510b芯片的系统中的地址重映射的实现  地址重映射,说白了就是存储空间的重新分配,又被称为Remap。地址空间的重新分配,与处理器的硬件结构紧密相关。总体来说,32位系统中的地址重映射机制可以分为两类情况,一类是处理器内部有专门的寄存器可以完成Remap,这种只需将R...

经验教程

485

收藏

53
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部