2

我有一个运行时间很长的任务,它会定期轮询 Web 服务以获取 XML 内容。我正在为这些定期运行使用计划的执行程序,并且一切正常。

ScheduledExecutorService 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);}
  }
}
4

1 回答 1

0

除了在 r​​un 方法中捕获所有异常之外,我认为没有其他方法。如果您不介意使用 3rd 方库,您可以使用Quartz。看看这里

hth

于 2012-09-10T09:20:50.040 回答