in jetcache-starter/jetcache-autoconfigure/src/main/java/com/alicp/jetcache/autoconfigure/RedisLettuceAutoConfiguration.java [121:146]
private StatefulConnection<byte[], byte[]> clusterConnection(ConfigTree ct, ReadFrom readFrom, RedisClusterClient client, boolean pubsub) {
int enablePeriodicRefresh = ct.getProperty("enablePeriodicRefresh", 60);
boolean enableAllAdaptiveRefreshTriggers = ct.getProperty("enableAllAdaptiveRefreshTriggers", true);
ClusterTopologyRefreshOptions.Builder topologyOptionBuilder = ClusterTopologyRefreshOptions.builder();
if (enablePeriodicRefresh > 0) {
topologyOptionBuilder.enablePeriodicRefresh(Duration.ofSeconds(enablePeriodicRefresh));
}
if (enableAllAdaptiveRefreshTriggers) {
topologyOptionBuilder.enableAllAdaptiveRefreshTriggers();
}
ClusterClientOptions options = ClusterClientOptions.builder()
.topologyRefreshOptions(topologyOptionBuilder.build())
.disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS)
.build();
client.setOptions(options);
if (pubsub) {
return client.connectPubSub(new JetCacheCodec());
} else {
StatefulRedisClusterConnection<byte[], byte[]> c = client.connect(new JetCacheCodec());
if (readFrom != null) {
c.setReadFrom(readFrom);
}
return c;
}
}