!!求高手,在线等:怎么定时执行servlet来读数据更新application的value??

osobo 2009-09-16 07:52:04
在线等:如何定时执行servlet来读取数据更新application的value?


因为某些数据使用比较频繁;因为数据库服务器在异地,读起来很慢。
我的想法是,启动tomcat后,定时执行(比如5分钟)一个servlet来从数据库读取数据,封装后更新到application;

用户访问的时候,不访问数据库,而是直接读取application中的对象数据;
说明下,不用struct等框架,纯servlet。

求高手解答,最好给代码,简单明了;

非常感激,可加分。
...全文
123 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenliuyang 2009-09-18
  • 打赏
  • 举报
回复
小气鬼不结贴的
haxzheng 2009-09-17
  • 打赏
  • 举报
回复
自定义个Listener,在应用启动的时候加载定时器(Timer),定时执行任务(TimerTask)。
youjianbo_han_87 2009-09-17
  • 打赏
  • 举报
回复
首先,楼主要记得,是不是真的是这个需求,然后在找办法,如果真的是只要执行定时任务,那上面的人基本上都给你说出来怎么解决了。
archko 2009-09-17
  • 打赏
  • 举报
回复
jdk Timer 可以实现定时功能,如果可以,你下载外quartz 就可以了.配置监听器,不一定要SPRING,TIMER虽然理论上可以满足要求,但实际上不多用.比如线程阻塞,IO阻塞,好像它不会准时的.
ServletContext sc=getServletContext()就可以得到了.
osobo 2009-09-16
  • 打赏
  • 举报
回复
谢谢回复;
我主要就是不太怎么调用servletContext;
yztommyhc 2009-09-16
  • 打赏
  • 举报
回复
web.xml中load-on-startup可以配置你的servlet的init()在tomcat启动的时候被调用.

public myServlet extends ...
{
init()
{
//这里写你的定时任务
}


}
warrior30 2009-09-16
  • 打赏
  • 举报
回复
楼主都说了没有任何框架的,

用jdk中的Timer类(定时器),楼主研究一下,
给你个地址可以参照:
http://blog.csdn.net/qiushyfm/archive/2009/05/03/4146423.aspx
chenliuyang 2009-09-16
  • 打赏
  • 举报
回复
public class A extends Thread{
private B b;
public A(B b){
this.b=b;
}
private long waitTime;
public void setWaitTime(long time){
this.waitTime=time;
}
public void run(){
while(true){
try{
if(b!=null){
b.run();
this.sleep(waitTime);
}
}catch(Exception ex){

}
}
}
}
interface B{
public void run();
}

你自己实现B接口。
在run方法你自己写代码调用Servlet
没参数的话,那你就写个程序每5分钟访问一次Servlet的位置
ouyangyh 2009-09-16
  • 打赏
  • 举报
回复
具体的,你看看Spring的手册吧,我也有点忘了
ouyangyh 2009-09-16
  • 打赏
  • 举报
回复
如果你是用Spring的话,可以使用里面的一个定时功能的
实在不行,你就做一个线程
然后在context监听器中启动这个线程
定时更新吧
osobo 2009-09-16
  • 打赏
  • 举报
回复
哎。。都忙啊。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧