//package com.weiqi.mis.redis;
//
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.data.redis.connection.RedisConnectionFactory;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.data.redis.listener.PatternTopic;
//import org.springframework.data.redis.listener.RedisMessageListenerContainer;
//import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
//
//@Configuration
//public class RedisListenerConfig {
//
//    public static final String sms_redisqueue_channel = "sms_redisqueue";
//    public static final String sms_redisqueue_total_channel = "sms_redisqueue_total";
//    public static final String sms_redis_kg_channel = "sms_redi_kg_channel";
//    public static final String sms_redis_wg_channel = "sms_redi_wg_channel";
//    public static final String sms_redis_headbeat = "headbeat";
//
//    /**
//     * redis消息监听器容器 可以添加多个监听不同话题的redis监听器，只需要把消息监听器和相应的消息订阅处理器绑定，该消息监听器 通过反射技术调用消息订阅处理器的相关方法进行一些业务处理
//     *
//     * @param connectionFactory
//     * @param listenerAdapter
//     * @return
//     */
//    @Bean
//    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
//        MessageListenerAdapter listenerAdapter, MessageListenerAdapter listenerAdapter2,
//        MessageListenerAdapter listenerAdapterkg,MessageListenerAdapter listenerAdapterwg,MessageListenerAdapter listenerAdapterhb) {
//        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
//        container.setConnectionFactory(connectionFactory);
//
//        // 可以添加多个 messageListener
//        container.addMessageListener(listenerAdapter, new PatternTopic(sms_redisqueue_channel));
//        container.addMessageListener(listenerAdapter2, new PatternTopic(sms_redisqueue_total_channel));
//        container.addMessageListener(listenerAdapterkg, new PatternTopic(sms_redis_kg_channel));
//        container.addMessageListener(listenerAdapterwg, new PatternTopic(sms_redis_wg_channel));
//        container.addMessageListener(listenerAdapterhb, new PatternTopic(sms_redis_headbeat));
//
//        return container;
//    }
//
//    /**
//     * 消息监听器适配器，绑定消息处理器，利用反射技术调用消息处理器的业务方法
//     *
//     * @param redisReceiver
//     * @return
//     */
//    @Bean
//    MessageListenerAdapter listenerAdapter(RedisReceiver redisReceiver) {
//
//        return new MessageListenerAdapter(redisReceiver, "receiveMessage");
//    }
//
//    /**
//     * 消息监听器适配器，绑定消息处理器，利用反射技术调用消息处理器的业务方法
//     *
//     * @param redisReceiver
//     * @return
//     */
//    @Bean
//    MessageListenerAdapter listenerAdapter2(RedisReceiver redisReceiver) {
//
//        return new MessageListenerAdapter(redisReceiver, "receiveMessage2");
//    }
//
//    /**
//     * 消息监听器适配器，绑定消息处理器，利用反射技术调用消息处理器的业务方法
//     *
//     * @param redisReceiver
//     * @return
//     */
//    @Bean
//    MessageListenerAdapter listenerAdapterkg(RedisReceiver redisReceiver) {
//
//        return new MessageListenerAdapter(redisReceiver, "receiveMessage3");
//    }
//
//    /**
//     * 消息监听器适配器，绑定消息处理器，利用反射技术调用消息处理器的业务方法
//     *
//     * @param redisReceiver
//     * @return
//     */
//    @Bean
//    MessageListenerAdapter listenerAdapterwg(RedisReceiver redisReceiver) {
//
//        return new MessageListenerAdapter(redisReceiver, "receiveMessage4");
//    }
//  /**
//     * 心跳
//     *
//     * @param redisReceiver
//     * @return
//     */
//    @Bean
//    MessageListenerAdapter listenerAdapterhb(RedisReceiver redisReceiver) {
//
//        return new MessageListenerAdapter(redisReceiver, "receiveMessage5");
//    }
//
//    // 使用默认的工厂初始化redis操作模板
//    @Bean
//    StringRedisTemplate template(RedisConnectionFactory connectionFactory) {
//        return new StringRedisTemplate(connectionFactory);
//    }
//}