试图包含与 azure redis autoreconnect 相关的代码,如果 Redis PubSub 连接中发生任何网络错误。任何帮助建议将是感激的。下面是我的Redis Config代码。
public class RedisConfig
{
@Bean
JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedis = new JedisConnectionFactory();
jedis.setHostName("redishostname");
jedis.setPassword("redispassword");
jedis.setPort(redisport);
return jedis;
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
final RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
template.setConnectionFactory(jedisConnectionFactory());
template.setValueSerializer(new GenericToStringSerializer<Object>(Object.class));
return template;
}
@Bean
RedisMessageListenerContainer redisContainer() {
final RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(jedisConnectionFactory());
container.setTaskExecutor(Executors.newFixedThreadPool(4));
return container;
}
}
请看以下客户端库的具体指导(联系)的Azure Cache for Redis和可用的信息。Jedis (Java).
有一个 PoolUsage.java 榜样和 ClusterUsage.java 的例子。
至于PubSub Reconnect的具体例子,请看下面的Stack Overflow帖子。jedis pubsub和超时:如何作为订阅者无限监听?
private AkkaStarter2(){
//0 specifying no timeout.. Overlooked this 100 times
sub = new Jedis(REDISHOST, REDISPORT,0);
akkaListener = new AkkaListener();
}