论坛首页 入门技术论坛

java Timer 调用两次 原因 解决方法

浏览 2009 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-24   最后修改:2009-12-24
IDE:Eclipse
Server:GlassFish
用到Timer,任务是每10S进行一项任务。
有个servlet在服务器启动时被加载,并且在init里开始定时器任务
遇到的问题,有时候10S执行一次,但是有时候10S执行两次,而且这两次是相互隔离的,互补干扰,并且各任务之间间隔也是10S。感觉像是一个定时器被隔离调用了2次。

查了很多资料,都没有解决问题,最后自己琢磨发现:
原来是启动服务器的时候这个定时器启动,这时候一直就是正确的,都是10S只有一个定时器被调用。
后来修改了一些代码,在Eclipse里热部署了,再次启动定时器任务的时候,发现原来的定时器还在,结果出现上述问题。

总结:每次都要重启服务器就可以避免这个问题。

PS:调用两次的原因可能有很多种,希望大家对症下药。
PS:关于Eclipse的热部署,可以到我的博客下找到对应的文章
地址:GlassFish安装下载和Eclipse热部署
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics