背景:我习惯性地将Thread.sleep()
调用转换为TimeUnit.XXX.sleep()
调用,每当我需要触摸包含它的代码时。
问题:首先,这样可以吗,还是TimeUnit的睡眠有一些微妙的问题?然后,据我所知,这是在网络(或类似)操作重试之前等待的最佳方式
for(int retriesLeft = 3; ;--retriesleft) {
try {
doOperation(...);
break;
} catch (IOException ex) {
if (retryCountDown <= 0) throw ex;
else TimeUnit.SECONDS.sleep(10);
}
}
在上面睡觉是TimeUnit.XXXX.sleep(10)
正确的方法,还是有更好的方法?此外,如果有更好的 Java 模式来处理整个网络操作重试逻辑,请随时发表评论......