in dubbo-remoting-extensions/dubbo-remoting-etcd3/src/main/java/org/apache/dubbo/remoting/etcd/jetcd/JEtcdClientWrapper.java [687:730]
private void retry() {
if (!failedRegistered.isEmpty()) {
Set<String> failed = new HashSet<String>(failedRegistered);
if (!failed.isEmpty()) {
if (cancelKeepAlive) {
return;
}
if (logger.isWarnEnabled()) {
logger.warn("Retry failed register(keep alive) for path '" + failed
+ "', path size: " + failed.size());
}
try {
for (String path : failed) {
try {
/**
* Is it currently reconnecting ?
*/
if (cancelKeepAlive) {
return;
}
createEphemeral(path);
failedRegistered.remove(path);
} catch (Throwable e) {
failedRegistered.add(path);
Status status = Status.fromThrowable(e);
if (status.getCode() == Status.Code.NOT_FOUND) {
cancelKeepAlive();
}
logger.warn("Failed to retry register(keep alive) for path '" + path + "', waiting for again, cause: " + e.getMessage(), e);
}
}
} catch (Throwable t) {
logger.warn("Failed to retry register(keep alive) for path '" + failed + "', waiting for again, cause: " + t.getMessage(), t);
}
}
}
}