Commit 954d3989 by 房斌

支持lettuce自动括扑更新

parent 459bd285
package com.secoo.mall.redis.config;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.TimeoutOptions;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import org.springframework.boot.autoconfigure.data.redis.LettuceClientConfigurationBuilderCustomizer;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import java.time.Duration;
public class MatrixLettuceClientConfigurationBuilderCustomizer implements LettuceClientConfigurationBuilderCustomizer {
private final RedisProperties properties;
Long period;
Boolean adapt;
MatrixLettuceClientConfigurationBuilderCustomizer(RedisProperties properties,Long period,Boolean adapt){
this.properties = properties;
this.adapt=adapt;
this.period=period;
}
@Override
public void customize(LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigurationBuilder) {
ClientOptions.Builder builder = ClientOptions.builder();
if (this.properties.getCluster() != null) {
ClusterTopologyRefreshOptions.Builder refreshBuilder = ClusterTopologyRefreshOptions.builder();
if(adapt) {
refreshBuilder.enableAllAdaptiveRefreshTriggers();
}
if(period!=null){
refreshBuilder.enablePeriodicRefresh(Duration.ofMillis(period));
}
builder = ClusterClientOptions.builder().topologyRefreshOptions(refreshBuilder.build());
}
clientConfigurationBuilder.clientOptions(builder.timeoutOptions(TimeoutOptions.enabled()).build());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment