我有问题。我有一些看起来像这样的代码:
executor = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory("Exec"));
[...]
executor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// my task
...
}, 1, 1, TimeUnit.MINUTES);
每隔一段时间,上述任务就会遇到问题并崩溃。newSingleThreadScheduledExecutor 有一个有趣的属性:它会默默地死掉,不会再次执行任务。
我需要修改这种行为。换句话说,即使 run() 遇到 RuntimeException,我也希望任务以固定速率继续执行。
我怎么做?