in kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/snapshot/SnapshotService.java [110:132]
private void dumpDirectly(final String path, final String jobName, final List<String> result) {
for (String each : regCenter.getChildrenKeys(path)) {
String zkPath = path + "/" + each;
String zkValue = Optional.ofNullable(regCenter.get(zkPath)).orElse("");
String cachePath = zkPath;
String cacheValue = zkValue;
// TODO Decoupling ZooKeeper
if (regCenter instanceof ZookeeperRegistryCenter) {
CuratorCache cache = (CuratorCache) regCenter.getRawCache("/" + jobName);
if (null != cache) {
Optional<ChildData> cacheData = cache.get(zkPath);
cachePath = cacheData.map(ChildData::getPath).orElse("");
cacheValue = cacheData.map(ChildData::getData).map(String::new).orElse("");
}
}
if (zkValue.equals(cacheValue) && zkPath.equals(cachePath)) {
result.add(String.join(" | ", zkPath, zkValue));
} else {
result.add(String.join(" | ", zkPath, zkValue, cachePath, cacheValue));
}
dumpDirectly(zkPath, jobName, result);
}
}