Redis PubSub Воссоединиться с джедаем - PullRequest
0 голосов
/ 14 апреля 2020

Попытка включить код, связанный с azure redis autoreconnect, если произошла какая-либо ошибка сети в соединении Redis PubSub. Любая помощь / совет будет ценным. Ниже приведен мой код конфигурации Redis.

 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;
    }
    }

1 Ответ

0 голосов
/ 01 мая 2020

См. Следующие указания клиентской библиотеки c руководство ( ссылка ) для Azure Кэш для Redis и информацию, доступную для Jedis (Java) .

Существует пример PoolUsage. java и пример ClusterUsage. java.

Что касается конкретного c примера для повторного подключения PubSub, см. Следующий пост переполнения стека: jedis pubsub и тайм-ауты: как бесконечно слушать как подписчик?

private AkkaStarter2(){
//0 specifying no timeout.. Overlooked this 100 times
sub = new Jedis(REDISHOST, REDISPORT,0);
akkaListener = new AkkaListener();
}
...