diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/MsgHandlerDispatcher.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/MsgHandlerDispatcher.java index 6302adbd..d2928c89 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/MsgHandlerDispatcher.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/MsgHandlerDispatcher.java @@ -6,7 +6,9 @@ import java.util.Arrays; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; @@ -24,6 +26,9 @@ public class MsgHandlerDispatcher { @Autowired ICminmsgService cminmsgService; + @Value("${msgExchange.ignoreMsg}") + private String ignoreMsg; + public HandlerResult dispatch(Cminmsg cminmsg) { try @@ -36,6 +41,11 @@ public class MsgHandlerDispatcher { String type = msg.getMETA().getTYPE().name(); String subType = msg.getMETA().getSTYP().name(); + if(!isNeedHandler(type,subType)) + { + logger.error("消息type:{},subtype:{},设置不需要处理!",type,subType); + return HandlerResult.success(); + } Class clazzHandler = Class.forName(getHandlerClassName(type,subType)); Object classObject = clazzHandler.newInstance(); @@ -43,7 +53,6 @@ public class MsgHandlerDispatcher { HandlerResult result = (HandlerResult) runMethod.invoke(classObject, cminmsgWapper); return result; } catch (Exception e) { - //throw new RuntimeException(e); try { cminmsgService.updateBatchProcessed(Arrays.asList(cminmsg));//更新为已处理 @@ -76,4 +85,30 @@ public class MsgHandlerDispatcher { return buffer.toString(); } //end function + /** + * 是否需要处理该消息 + * @param type 消息主类型 + * @param subType 消息子类型 + * @return true 需要处理 ,false 不需要处理 + */ + private boolean isNeedHandler(String type,String subType) + { + if(StringUtils.isEmpty(ignoreMsg)) + { + return true;// 所有消息均需要处理 + } + + // + String typeToken = type + "-" + subType; + String typeTokenStar = type + "-*"; + String ignoreMsgs[] = ignoreMsg.split(","); + for (String msg : ignoreMsgs) { + if(typeToken.equalsIgnoreCase(msg) || typeTokenStar.equalsIgnoreCase(msg)) + { + return false; //不需要处理的消息逻辑 + } + } + + return true; + } //end function } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index f1d57009..75d67b23 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -55,6 +55,7 @@ kafka: msgExchange: intervalSeconds: 1 waitDateLeftOffset: 600000 + ignoreMsg: ldm-*,regn-*,rsta-*,error-* #忽略的消息列表 logstash: host: 130.120.3.234:5000 scheduled: diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 92c5dbf7..3af06709 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -55,6 +55,7 @@ kafka: msgExchange: intervalSeconds: 1 waitDateLeftOffset: 600000 + ignoreMsg: ldm-*,regn-*,rsta-*,error-* #忽略的消息列表 logstash: host: 130.120.3.234:5000 scheduled: diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index aaa1169c..2c881073 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -55,6 +55,7 @@ kafka: msgExchange: intervalSeconds: 1 waitDateLeftOffset: 600000 + ignoreMsg: ldm-*,regn-*,rsta-*,error-* #忽略的消息列表 logstash: host: 172.17.35.160:5000 scheduled: diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 65d7dfdf..b43999e2 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -55,6 +55,7 @@ kafka: msgExchange: intervalSeconds: 1 waitDateLeftOffset: 600000 + ignoreMsg: ldm-*,regn-*,rsta-*,error-* #忽略的消息列表 logstash: host: 130.120.3.234:5000 scheduled: