in gremlin-client/src/main/java/software/amazon/neptune/cluster/ClusterEndpointsRefreshAgent.java [53:74]
public void run() {
try {
Map<EndpointsSelector, Collection<GremlinClient>> clientSelectors = new HashMap<>();
for (RefreshTask task : tasks) {
EndpointsSelector selector = task.selector();
if (!clientSelectors.containsKey(selector)){
clientSelectors.put(selector, new ArrayList<>());
}
clientSelectors.get(selector).add(task.client());
}
Map<? extends EndpointsSelector, EndpointCollection> refreshResults = endpointsSupplier.getRefreshedEndpointsForSelectors(clientSelectors);
for (Map.Entry<? extends EndpointsSelector, EndpointCollection> entry : refreshResults.entrySet()) {
EndpointCollection endpoints = entry.getValue();
for (GremlinClient client : clientSelectors.get(entry.getKey())) {
logger.info("Refresh: [client: {}, endpoints: {}]", client.hashCode(), endpoints);
client.refreshEndpoints(endpoints);
}
}
} catch (Exception e) {
logger.error("Error while getting cluster metadata", e);
}
}