From a91c809735c8e640e86141345cc9a6ba5a97d8fb Mon Sep 17 00:00:00 2001 From: lepdou Date: Wed, 18 May 2016 14:54:57 +0800 Subject: [PATCH] fix --- .../com/ctrip/apollo/portal/PortalSettings.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/apollo-portal/src/main/java/com/ctrip/apollo/portal/PortalSettings.java b/apollo-portal/src/main/java/com/ctrip/apollo/portal/PortalSettings.java index caa1d51198f..a2dfd7cf5d1 100644 --- a/apollo-portal/src/main/java/com/ctrip/apollo/portal/PortalSettings.java +++ b/apollo-portal/src/main/java/com/ctrip/apollo/portal/PortalSettings.java @@ -128,15 +128,13 @@ public void run() { } } else { //maybe meta server up but admin server down - handleEnvDown(env); - hasUpdateStatus = true; + hasUpdateStatus = handleEnvDown(env); } } catch (Exception e) { //maybe meta server down logger.warn("health check fail. [env:{}]", env, e.getMessage()); - handleEnvDown(env); - hasUpdateStatus = true; + hasUpdateStatus = handleEnvDown(env); } } @@ -151,13 +149,17 @@ private boolean isUp(Env env) { return "UP".equals(health.getStatus().getCode()); } - private void handleEnvDown(Env env) { + private boolean handleEnvDown(Env env) { long failCnt = healthCheckFailCnt.get(env); healthCheckFailCnt.put(env, ++failCnt); - if (failCnt >= ENV_DIED_THREADHOLD) { + if (envStatusMark.get(env) && failCnt >= ENV_DIED_THREADHOLD){ envStatusMark.put(env, false); - logger.error("env down [env:{}]", env); + logger.error("env turn to down [env:{}]", env); + return true; + }else { + logger.warn("[env:{}] down yet.", env); + return false; } }