scheduledExecutorService.scheduleAtFixedRate(() -> { try { new SaveResultTask(jxMjKhTxService, constantProperties).run(); } catch (Exception e) { e.printStackTrace(); } }, 0, 5, TimeUnit.MINUTES); 报异常之后五分钟还会执行嘛 如何报异常后继续执行
时间: 2023-06-26 10:09:20 浏览: 113
等待的注意事项-java开发基础(基础语法+面向对象基础+集合基础+常用api)
如果在调度任务中发生异常,那么这个任务将会被取消,不会再次执行。如果你希望任务在出现异常后继续执行,可以在任务内部使用 try-catch 块来捕获异常并进行处理。
例如,你可以在任务内部使用一个 while 循环来不断地执行任务,直到任务成功完成为止。代码示例如下:
```
scheduledExecutorService.scheduleAtFixedRate(() -> {
while (true) {
try {
new SaveResultTask(jxMjKhTxService, constantProperties).run();
break;
} catch (Exception e) {
e.printStackTrace();
// 等待一段时间后再次执行任务
Thread.sleep(5000);
}
}
}, 0, 5, TimeUnit.MINUTES);
```
这样就可以保证任务在出现异常后能够继续执行,直到任务成功完成为止。需要注意的是,如果任务一直无法成功完成,那么这个任务将会一直运行下去,可能会对系统造成一定的负担。因此,你需要根据具体的情况来判断是否需要加入一些限制条件,以避免出现这种情况。
阅读全文