redis监听断开后,重新监听的方案

之前搭建的springcloud gateway框架,出现了问题,一旦redis重启后监听就会失效。我的思路是,捕捉到redis断开的异常,并尝试重新监听。写了一个心跳机制,一旦redis断开连接,便等待redis重连,一旦重连后就重新开启监听,调用KeyspaceEventMessageListener的init方法,下面是代码。

@Slf4j
@Component
public class RedisMessageListener extends KeyspaceEventMessageListener {
    @Resource
    private RedisTemplate redisTemplate;
    @Resource
    private ApplicationEventPublisher publisher;

    @Value("${spring.redis.host}")
    private String redisHost;
    @Value("${spring.redis.port}")
    private int redisPort;
    @Value("${spring.redis.password}")
    private String redisPassword;

    public RedisMessageListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }

    @Override
    public void onMessage(Message message, byte[] pattern) {
        //监听redis的改变,若改变的值为GATEWAY_ROUTES,则更新路由ma

你可能感兴趣的:(springcloud,redis)