in gremlin-client-demo/src/main/java/software/amazon/neptune/RefreshEndpointsDemo.java [81:136]
public void run() {
try {
String endpoint = endpoints.get(index.getAndIncrement() % endpoints.size() );
NeptuneGremlinClusterBuilder builder = NeptuneGremlinClusterBuilder.build()
.enableSsl(!disableSsl)
.enableIamAuth(enableIam)
.iamProfile(profile)
.addContactPoints(endpoint)
.minConnectionPoolSize(3)
.maxConnectionPoolSize(3)
.port(neptunePort);
if (StringUtils.isNotEmpty(serviceRegion)) {
builder = builder.serviceRegion(serviceRegion);
}
GremlinCluster cluster = builder.create();
GremlinClient client = cluster.connect();
DriverRemoteConnection connection = DriverRemoteConnection.using(client);
GraphTraversalSource g = AnonymousTraversalSource.traversal().withRemote(connection);
for (int i = 0; i < queryCount; i++) {
try {
List<Map<Object, Object>> results = g.V().limit(10).valueMap(true).toList();
for (Map<Object, Object> result : results) {
//Do nothing
}
if (i % 10000 == 0) {
System.out.println();
System.out.println("Number of queries: " + i);
}
if (i % refreshCount == 0){
System.out.println();
endpoint = endpoints.get(index.getAndIncrement() % endpoints.size() );
System.out.println("Refreshing endpoint with " + endpoint);
client.refreshEndpoints(new DatabaseEndpoint().withAddress(endpoint));
}
} catch (Exception e) {
logger.warn("Error processing query: {}", e.getMessage());
}
}
client.close();
cluster.close();
} catch (Exception e) {
System.err.println("An error occurred while connecting to Neptune:");
e.printStackTrace();
System.exit(-1);
}
}