From aa2934ad5167d7000493e80a4cbe615b3cf61e87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?vwxc=E7=8E=8B=E5=85=B4=E6=9C=9D?= Date: Tue, 8 Mar 2016 13:37:16 +0800 Subject: [PATCH] Refactor task TaskWorkerImpl and change log level from error to warn --- .../zeus/executor/impl/TaskWorkerImpl.java | 63 +++++++++---------- .../zeus/task/nginx/NginxStatusFetcher.java | 5 +- 2 files changed, 32 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/ctrip/zeus/executor/impl/TaskWorkerImpl.java b/src/main/java/com/ctrip/zeus/executor/impl/TaskWorkerImpl.java index 5cf4db0c..e99c9f5f 100644 --- a/src/main/java/com/ctrip/zeus/executor/impl/TaskWorkerImpl.java +++ b/src/main/java/com/ctrip/zeus/executor/impl/TaskWorkerImpl.java @@ -1,65 +1,60 @@ package com.ctrip.zeus.executor.impl; +import com.ctrip.zeus.executor.TaskExecutor; import com.ctrip.zeus.executor.TaskWorker; -import com.ctrip.zeus.model.entity.Slb; import com.ctrip.zeus.service.model.EntityFactory; import com.ctrip.zeus.service.model.SelectionMode; -import com.ctrip.zeus.service.model.SlbRepository; -import com.ctrip.zeus.executor.TaskExecutor; import com.ctrip.zeus.service.query.SlbCriteriaQuery; import com.ctrip.zeus.util.S; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import javax.annotation.Resource; /** * Created by fanqq on 2015/7/31. */ @Component("taskWorker") public class TaskWorkerImpl implements TaskWorker { - private static Long workerSlbId = null; @Resource - SlbCriteriaQuery slbCriteriaQuery; + private SlbCriteriaQuery slbCriteriaQuery; @Resource - TaskExecutor taskExecutor; + private TaskExecutor taskExecutor; @Resource - EntityFactory entityFactory; + private EntityFactory entityFactory; + + private Logger logger = LoggerFactory.getLogger(this.getClass()); - Logger logger = LoggerFactory.getLogger(this.getClass()); - private static int initFailCount = 0; @Override public void execute() { + String selfIp = S.getIp(); + Long workerSlbId = null; + try { - //1. init - init(); - }catch (Exception e ){ - logger.error("Task Worker Init Fail."+e.getMessage(),e); - } - //2. execute - if (workerSlbId!=null){ + //1. getWorkerSlbId + workerSlbId = getWorkerSlbId(); + + //2. check slbId + if (workerSlbId == null) { + logger.warn("Can Not Found Slb by Local Ip. NginxStatusFetcher ignore task! Local Ip : " + selfIp); + return; + } + + //3. Do work taskExecutor.execute(workerSlbId); - }else { - logger.error("Task Worker Start Fail. WorkerSlbId is null!"); + } catch (Exception e) { + logger.error("Task Worker Execute Fail." + e.getMessage(), e); } } - private void init()throws Exception{ - Long[] slbIds = entityFactory.getSlbIdsByIp(S.getIp(), SelectionMode.ONLINE_FIRST); - if (slbIds == null || slbIds.length == 0){ - logger.error("Can Not Found Slb by Local Ip. TaskExecutor is not working!Local Ip : "+S.getIp()); - return; - } - Long slbId = slbIds[0]; - if (slbId != null && slbId > 0){ - workerSlbId = slbId; - initFailCount = 0; - }else{ - if (++initFailCount > 3){ - workerSlbId = null; - } - logger.error("Can Not Found Slb by Local Ip. TaskExecutor is not working!Local Ip : "+S.getIp()); + private Long getWorkerSlbId() throws Exception { + Long workerSlbId = null; + String selfIp = S.getIp(); + Long[] slbIds = entityFactory.getSlbIdsByIp(selfIp, SelectionMode.ONLINE_FIRST); + if (slbIds != null && slbIds.length > 0) { + workerSlbId = slbIds[0]; } + return workerSlbId; } } diff --git a/src/main/java/com/ctrip/zeus/task/nginx/NginxStatusFetcher.java b/src/main/java/com/ctrip/zeus/task/nginx/NginxStatusFetcher.java index 726bfec2..e5e7545c 100644 --- a/src/main/java/com/ctrip/zeus/task/nginx/NginxStatusFetcher.java +++ b/src/main/java/com/ctrip/zeus/task/nginx/NginxStatusFetcher.java @@ -39,9 +39,10 @@ public class NginxStatusFetcher extends AbstractTask { @Override public void run() throws Exception { - Long[] slbIds = entityFactory.getSlbIdsByIp(S.getIp(), SelectionMode.ONLINE_FIRST); + String selfIp = S.getIp(); + Long[] slbIds = entityFactory.getSlbIdsByIp(selfIp, SelectionMode.ONLINE_FIRST); if (slbIds == null || slbIds.length == 0){ - logger.error("Can Not Found Slb by Local Ip. NginxStatusFetcher ignore task! Local Ip : "+S.getIp()); + logger.warn("Can Not Found Slb by Local Ip. NginxStatusFetcher ignore task! Local Ip : " + selfIp); return; }