Как мне использовать RedisMessageListenerContainer в классе конфигурации - PullRequest
0 голосов
/ 22 января 2019

Я использую spring-MVC и spring-data-redis для управления пулом Redis-кластера.Когда я использую jedisCluster.subscribe (new JedisPubSubListener (), "bb");

, мое приложение запустит этот код (я пытаюсь использовать поток, но другой не может получить экземпляр в @autowerid),Я гугл много способов указать мне на использование Spring-Boot.но я могу изменить структуру в нашем проекте.Поэтому я думаю, что когда весной init я могу зарегистрировать слушателя для использования.Но я могу запустить соус в своем исходном коде.

Может ли кто-нибудь сделать пример для меня, если я использую следующий код:

@Configuration
public class RedisClusterConfig {
    private List<String> redisNodes(){
        return Arrays.asList(redisNode.split(","));
    }

    @Bean
    JedisPoolConfig jedisPoolConfig(){
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(maxTotal);
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMinIdle(minIdle);
        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
        jedisPoolConfig.setTestOnBorrow(testOnBorrow);
        jedisPoolConfig.setTestOnReturn(testOnReturn);
        jedisPoolConfig.setTestWhileIdle(testWhileIdle);        
        return jedisPoolConfig;
    }

@Bean
    RedisConnectionFactory redisClusterConnectionFactory(JedisPoolConfig 
jedisPoolConfig){
        JedisConnectionFactory redisConnectionFactory = new 
JedisConnectionFactory(new RedisClusterConfiguration(redisNodes()));
        redisConnectionFactory.setPoolConfig(jedisPoolConfig);
        return redisConnectionFactory;
    }
}

1 Ответ

0 голосов
/ 23 января 2019

это то, как я настраиваюсь в моей конфигурации.

@Bean
public RedisMessageListenerContainer redisMessageListenerContainer() {

    RedisMessageListenerContainer container = new RedisMessageListenerContainer();
    container.setConnectionFactory(redisConnectionFactory);

    container.addMessageListener(consumerRedis(),topic());
    return container;

}

@Bean
public ConsumerRedisListener consumerRedis() {
    return new ConsumerRedisListener();//this class implements MessageListener 
}

@Bean
public ChannelTopic topic() {
    return new ChannelTopic("channel");
}
...