spring的job功能,自动停止不运行问题

丁牛网技术 2012-07-17 09:37:18
有没有谁碰到过这样的情况,spring的job跑着跑着,不按时去启动了,用的是TimerTask;我现在怀疑是不是程序抛出异常了就会导致这种情况,请大虾们指点!
...全文
395 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
丁牛网技术 2012-07-18
  • 打赏
  • 举报
回复
多些楼上的详细讲解,我是在做网站WWW.yishish.com中碰到这个问题的,为了改动较小,我还是先catch住所有的异常才放上去试试,会不会再停。
pyl1164 2012-07-17
  • 打赏
  • 举报
回复
在TimerTask执行第二次的时候抛出异常,timer可能就停止掉了,但这种行为是不确定的,在有些平台上某些jvm实现可能依然能够运行良好,但在另外一些环境下就出问题了,在开发时可能没测试出问题,部署到生产环境可能就有问题了。在这种情况下,若后续再用timer来schedule任务,会抛出java.lang.IllegalStateException: Timer already cancelled的异常。

如果正在使用jdk1.5及以后版本,强烈建议换成ScheduledThreadPoolExecutor(可通过Executors.newScheduledThreadPool获得),这种方式就不会有Timer的种种问题(如绝对时间问题,任务执行丢失问题等)。如果没办法使用ScheduledThreadPoolExecutor,那么一定要记得catch住Timer#run抛出的Runtime异常
参考网站: http://www.ticmy.com/?p=82 警惕TimerTask#run可能抛出的异常

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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