如何确保计划的执行器即使在运行时异常之后也能运行



我有一个运行时间很长的任务,它定期轮询web服务中的XML内容。我正在为这些定期运行使用Scheduled执行器,一切都很好。

ScheduledExecutiorService scheduleAtFixedRate的JavaDoc声明

  • 。。。如果任务的任何执行遇到异常,则会抑制后续执行*

这清楚地意味着,在出现未处理的异常的情况下,应用程序即使在运行,实际上也处于停止状态,什么也不做

我想确保任务执行不会停止,除了捕捉所有异常,还有其他方法可以处理吗?

@Override 
public void run() {
  try {
       // fetch xml feed from network, 
       // parse the feed and dump to file the json.
  } catch (Exception e) {
      logger.error("Unhandled exception " + e);}
  }
}

我认为除了在run方法中捕获所有异常之外,没有其他方法。如果你不介意使用第三方库,你可以使用Quartz。看看这里。

hth

相关内容

  • 没有找到相关文章

最新更新