2

XML コンテンツの Web サービスを定期的にポーリングする非常に長時間実行されるタスクがあります。これらの定期的な実行に Scheduled executor を使用していますが、すべて正常に動作します。

ScheduledExecutorServiceの JavaDoc のscheduleAtFixedRate には、

  • ... タスクの実行で例外が発生した場合、後続の実行は抑制されます ...*

これは、未処理の例外の場合、アプリケーションが実行中であっても、事実上停止状態にあり、何もしないことを明確に意味します。

タスクの実行が停止しないようにしたいのですが、すべての例外をキャッチする以外に、これに対処する方法はありますか?

@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

run メソッドですべての例外をキャッチする以外に、別の方法はないと思います。サードパーティのライブラリを使用してもかまわない場合は、Quartzを使用できます。こちらをご覧ください。

h番目

于 2012-09-10T09:20:50.040 に答える