定时任务中程序异常挂起了,怎么让任务继续执行??

miracleliu 2013-06-17 10:43:41
描述:

一个timer定时任务,每天执行几个方法。

不知道什么原因,有时候周五会down掉,timer不再继续执行。并非每周五都会down。



说明:

所有的任务都加了try catch的,

看了日志,这一天的任务没执行完,所以第二天的timer就不执行了。

有什么办法能让这个timer即使前一天的没执行完,新的一天也要开始执行?
...全文
1293 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
且活且珍惜 2013-06-19
  • 打赏
  • 举报
回复
4L的想法比较认同
北吹 2013-06-19
  • 打赏
  • 举报
回复
Timer本身是基于一个被单线程监听的队列来设计的,这种问题属于它本身设计的缺陷。 最好的办法还是使用quartz,用线程池来处理定时任务。 用代码根据业务来控制定时任务会有很多问题,一个是业务本身允不允许你这样强制终止,二是多一个定时任务你就要多考虑一次业务控制,这种思路业务耦合性太强。
l_9style 2013-06-19
  • 打赏
  • 举报
回复
这个情况,你只能自己做一个逻辑来处理,在前一天任务没执行完,而需要执行的第二天的任务的时候,去终止掉前一天未执行完成的任务,让你的timer自然的进入下一个周期。
zuxianghuang 2013-06-19
  • 打赏
  • 举报
回复
定时器是这样的,比如一个小时执行一次 的,如果一个小时没有执行完,新的一次又启动了,那么就会超时了,。 目前我们采用的方式是,方法同步,如果上次没执行完,这次定时启动时,就进入等待,(因为我们要保证每次都执行完。)
biq园 2013-06-18
  • 打赏
  • 举报
回复
定时服务,只在系统启动时初始化类,后续调用时是不会在再初始化类。你看下你有没有把控制变量写成公用变量了:你把所有公用变量都写在方法中试下。
miracleliu 2013-06-18
  • 打赏
  • 举报
回复
没人回。。。唉

81,092

社区成员

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

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