怎么实现定时触发事件 比如想定时向数据库中插入数据

怎么实现定时触发事件 比如想定时向数据库中插入数据,第1张

添加一个全局应用程序类,在里面添加如下代码:

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如何实现定时从数据库查询新增的数据,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10167995.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存