From ea6464af8a03dfbd7d4bbd12dee72fe160c642cb Mon Sep 17 00:00:00 2001 From: DanielWei Date: Thu, 13 Feb 2020 18:20:47 +0800 Subject: [PATCH] Adds various improvements to RedisRouteDefinitionRepository. --- .../gateway/route/RedisRouteDefinitionRepository.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RedisRouteDefinitionRepository.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RedisRouteDefinitionRepository.java index 53ff1c6a..7fe192bb 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RedisRouteDefinitionRepository.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RedisRouteDefinitionRepository.java @@ -16,6 +16,8 @@ package org.springframework.cloud.gateway.route; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -30,6 +32,8 @@ import org.springframework.stereotype.Repository; @Repository public class RedisRouteDefinitionRepository implements RouteDefinitionRepository { + private static final Logger log = LoggerFactory.getLogger(RedisRouteDefinitionRepository.class); + /** * Key prefix for RouteDefinition queries to redis. */ @@ -48,7 +52,12 @@ public class RedisRouteDefinitionRepository implements RouteDefinitionRepository @Override public Flux getRouteDefinitions() { return reactiveRedisTemplate.keys(createKey("*")) - .flatMap(key -> reactiveRedisTemplate.opsForValue().get(key)); + .flatMap(key -> reactiveRedisTemplate.opsForValue().get(key)) + .onErrorContinue((throwable, routeDefinition) -> { + if (log.isErrorEnabled()) { + log.error("get routes from redis error cause : {}", throwable.toString(), throwable); + } + }); } @Override