Tomcat Listener 中配置的TIMER停止的问题

问题描述

最近小虾米我配置了个Tomcat的网站,其中设置了一个Listener,放置了两个Timer,其中一个timer_ExchangeRate一直很正常,但是timer_FondValue却会不定时死掉,不再执行任务。(timer_FondValue运行程序的时间会长于另一个TIMER)这究竟是什么原因导致的呢?有没有解决方案啊?Listener代码如下importjava.util.Timer;importjava.util.TimerTask;importjavax.servlet.ServletContextEvent;importjavax.servlet.ServletContextListener;importcom.test.GetExchangeRate;importcom.test.GetFondValue;//importcom.publisherTest.GetFond;publicclassGetSourceTimerimplementsServletContextListener{publicGetSourceTimer(){}publiclongrefresh_ExchangeRate=60000;publiclongrefresh_FondValue=180000;/***无延迟*/publicstaticfinallongNO_DELAY=0;/***定时器*/privateTimertimer_ExchangeRate;privateTimertimer_FondValue;//publicstaticinti=0;/***在Web应用启动时初始化任务*/publicvoidcontextInitialized(ServletContextEventevent){//定义定时器//i++;timer_ExchangeRate=newTimer("汇率刷新",true);timer_FondValue=newTimer("净值刷新",true);timer_ExchangeRate.schedule(newmyTask(),NO_DELAY,refresh_ExchangeRate);timer_FondValue.schedule(newFondTask(),NO_DELAY,refresh_FondValue);}/***在Web应用结束时停止任务*/publicvoidcontextDestroyed(ServletContextEventevent){timer_ExchangeRate.cancel();//定时器销毁timer_FondValue.cancel();}classmyTaskextendsTimerTask{privatebooleanisRunning=false;//privatestaticLoglog=LogFactory.getLog(BackUpTableTask.class);publicvoidrun(){if(!isRunning){isRunning=true;//更新汇率信息GetExchangeRategetrate=newGetExchangeRate();if(getrate.CheckIsNull()){getrate.iniExchangeRate();}else{if(!getrate.CheckExchangeTime()){getrate.UpadateExchangeRate();}}isRunning=false;}else{this.cancel();}}}classFondTaskextendsTimerTask{privatebooleanisRunning=false;//privatestaticLoglog=LogFactory.getLog(BackUpTableTask.class);publicvoidrun(){if(!isRunning){isRunning=true;//更新汇率信息GetFondValuegetfond=newGetFondValue();if(getfond.CheckIsNull()){getfond.iniFondValue();}else{if(!getfond.CheckExchangeTime()){getfond.reload();}}isRunning=false;}else{this.cancel();}}}}跪求各位大大了!

解决方案

解决方案二:
有没有人知道啊?急啊!
解决方案三:
FondTask在执行时,可能执行的时间比较长,如果没有执行完的话,你做了取消当前任务的操作isRunning=false;}else{this.cancel();}所以,以后不再执行任务。

时间: 2024-10-08 23:11:53

Tomcat Listener 中配置的TIMER停止的问题的相关文章

在 Tomcat 中配置 SSL/TLS 以支持 HTTPS

本件详细介绍了如何通过几个简单步骤在 Tomcat 中配置 SSL/TLS .使用 JDK 生成自签名的证书,最终实现在应用中支持 HTTPS 协议. 生产密钥和证书 Tomcat 目前只能操作 JKS.PKCS11.PKCS12 格式的密钥存储库.JKS 是 Java 标准的"Java 密钥存储库"格式,是通过 keytool 命令行工具创建的.该工具包含在 JDK 中.PKCS12 格式一种互联网标准,可以通过 OpenSSL 和 Microsoft 的 Key-Manager 来

手把手教你----MyEclipse中 配置 Tomcat

电脑上配置Tomcat服务器 安装Tomcat并配置环境变量 测试是否配置成功 MyEclipse中配置Tomcat 想要开发Java Web的程序,首先在MyEclipse中必须配置Tomcat,一起来动手操作吧. 电脑上配置Tomcat服务器 安装Tomcat并配置环境变量 官网上下载Tomcat,记住你下载安装的版本,后面再MyEclipse中配置的时候会用到,安装时记住你安装的目录,安装成功后,配置环境变量,在系统环境变量中新建 输入的内容如下: 变量名:CATALINA_HOME 变量

spring3mvc框架开发中resin和tomcat默认servelt配置处理静态资源

spring3mvc框架开发中resin和tomcat默认servelt配置 解决的问题: 让静态资源不通过DispatcherServlet处理,由容器默认servlet来处理.   在spring3mvc框架开发,web.xml如下配置时     <servlet>         <servlet-name>task</servlet-name>         <servlet-class>org.springframework.web.servle

关于eclipse中配置tomcat的问题

问题描述 关于eclipse中配置tomcat的问题 自己原来写java用的eclipse,后来写jsp的时候,用editplus写,然后放入定义好的文件, 用浏览器看运行结果,最近下了web的插件,想在Java中编写jsp代码,但是卡在tomcat 和eclipse的相互配置上. 现在我想把写好的jsp文件保存在自己的D盘JspWeb目录下, 自己浏览器默认的端口改成了80,我的原来的路径是这样的 < Context=path"JspWeb" docBase="D:J

java eclipse tomcat-在eclipse中配置好tomcat后,其他项目下的java运行报错

问题描述 在eclipse中配置好tomcat后,其他项目下的java运行报错 tomcat配置成功了,localhost:8080也没有问题,但是java项目下的java文件不能编译通过,用的是tomcat免安装版的6.0 解决方案 这个不一定就是tomcat的问题,也可能是项目的问题,比如说你的项目是java7开发,而现在的tomcat环境用的是jdk6 如果可以最好是把报错信息发出来 解决方案二: 你的tomcat里面以前是不是发布过其他的项目,其他的项目里面有编译错误,而你没把tomca

web.xml-servelt如何在tomcat中配置?

问题描述 servelt如何在tomcat中配置? servlet用了书上的例子 package package01; import java.io.*; import javax.servlet.*; public class HelloServlet extends GenericServlet { public void service(ServletRequest request,ServletResponse response) throws ServletException,IOEx

java-在myeclipse中配置好tomcat但就是上不了网

问题描述 在myeclipse中配置好tomcat但就是上不了网 配置的tomcat没有问题,在谷歌浏览器中可以输入localhost:8080可以显示主页,但是在myeclipse中自带的浏览器确实怎么都上不了网 解决方案 MyEclipse配置Tomcatmyeclipse 配置tomcattomcat+myeclipse配置 解决方案二: MyEclipse配置Tomcatmyeclipse 配置tomcattomcat+myeclipse配置

ssh使用tomcat中配置好的c3p0数据源报错

问题描述 ssh使用tomcat中配置好的c3p0数据源报错 tomcat中对应项目的xml文件配置为: <?xml version="1.0" encoding="UTF-8"?> <Context path="/Village" docBase="D:WorkspacesMyEclipse 10webprojectVillageWebRoot" reloadable= "true" p

如何在Ubuntu中配置tomcat 域名访问?

问题描述 如何在Ubuntu中配置tomcat 域名访问? 如题,现在我修改host的appBase不行,把app Base改回webapps 的话就到tomcat 主页, 现在我要直接访问域名就跳转到项目页面-是否有其他办法解决? 解决方案 tomcat域名配置Tomcat域名配置Tomcat 多域名配置