問題があります。次のようなコードがあります。
executor = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory("Exec"));
[...]
executor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// my task
...
}, 1, 1, TimeUnit.MINUTES);
そして、時々、上記のタスクで問題が発生してクラッシュします。また、newSingleThreadScheduledExecutor には興味深い特性があります。それは、黙って終了し、タスクを再度実行しません。
その振る舞いを修正する必要があります。つまり、run() で RuntimeException が発生しても、タスクを固定レートで実行し続けたいということです。
それ、どうやったら出来るの?