
添加一个全局应用程序类,在里面添加如下代码:
void Application_Start(object sender, EventArgs e) {
Timer t = new Timer(3000); //每隔3秒
tEnabled = true;
tAutoReset = true;
tElapsed += new ElapsedEventHandler(aaa);
GCKeepAlive(t);
}
//把下面方法中改成你的数据库 *** 作即可
public void aaa(object sender, ElapsedEventArgs e)
{ FileStream fs = new FileStream("d://atxt", FileModeCreate);
StreamWriter sw = new StreamWriter(fs);
swWriteLine(DateTimeNow);
swClose();
fsClose();
}
简单实现的话,就启动一个线程,用一个死循环扩起来,然后用sleep去延时,取出的变量可以放在一个全局变量里,通过<%=Threaddbnum%>显示;也可以以写入字符文件,在页面上include就行,
public static int dbnum;
public xxMethod(){
while(true) {
dbnum = selectFromDB();
Threadsleep(1601000) ; //1ms 60 1000 = 1分钟
}
}
有几种方法,我觉得第二种,触发器是个好主意,见下。
第一种,开个线程,定式扫描,比如每一分钟查询一次数据库,将前后数据做比对(比对方法可以在java端先把第一次的数据存到一个集合中,然后每次查询集合之后,将两次的内容在java端作比较)
第二种,在数据库端,比如oracle数据库,对这个要监控的表A建个触发器,这个表中如果有数据改变,包括楼主要的新增,修改,删除,都可以被触发,然后把改变的内容存到另一个表B中,然后java就直接从这个B表中查询就可以了,省去了比对的工作。
第三种,如果你是用的类似spring这种框架,spring自带有类似crontab的功能,可以写个一般的java类,这个类中仅仅干查询数据,比对数据的工作,然后调度的工作交给spring框架来做,基本来说这个方法与第一种相比,只是调度者不同而已
第四种,可以随便写个java类,进行查询比对,然后在跑这个java程序的主机上,比如linux主机,配置一个crontab,来定时调度。
以上就是关于怎么实现定时触发事件 比如想定时向数据库中插入数据全部的内容,包括:怎么实现定时触发事件 比如想定时向数据库中插入数据、如何在web服务定时查询数据库,并返回更新的值、java如何实现定时从数据库查询新增的数据,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)