【问题标题】:How do I using RedisMessageListenerContainer in configuration class如何在配置类中使用 RedisMessageListenerContainer
【发布时间】:2019-01-22 03:26:52
【问题描述】:

我正在使用 spring-MVC 和 spring-data-redis 来控制 Redis-cluster 池。 当我使用 jedisCluster.subscribe(new JedisPubSubListener(), "bb");

我的应用程序将存储此代码(我尝试使用线程,但另一个无法在@autowerid 中获取实例)。 我在谷歌上搜索了很多方法来指向我使用 spring-boot 。 但我可以改变我们项目的结构。 所以我认为当 spring 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;
    }
}

【问题讨论】:

    标签: spring-mvc spring-data-redis


    【解决方案1】:

    这就是我在配置中的设置方式。

    @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");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多