Bagaimana cara menggunakan RedisMessageListenerContainer di kelas konfigurasi

Saya menggunakan spring-MVC dan spring-data-redis untuk mengontrol kumpulan cluster Redis. Saat saya menggunakan jedisCluster.subscribe(new JedisPubSubListener(), "bb");

aplikasi saya akan menyimpan kode ini (saya mencoba menggunakan utas tetapi yang lain tidak bisa mendapatkan instance di @autowerid). Saya mencari di Google banyak cara mengarahkan saya untuk menggunakan spring-boot . tapi saya bisa mengubah struktur proyek kita. Jadi menurut saya saat spring init saya bisa mendaftarkan pendengar untuk digunakan. Tapi saya bisa menjalankan saus dalam kode asli saya.

Dapatkah seseorang membuat contoh untuk saya jika saya menggunakan kode berikut ini:

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

person 石荒人    schedule 22.01.2019    source sumber


Jawaban (1)


ini adalah cara saya mengatur konfigurasi saya.

@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");
}
person 石荒人    schedule 23.01.2019