Browse Source

push业务各模块耗时信息

kongwz 4 years ago
parent
commit
6ceeed8d87

+ 4 - 0
src/main/java/com/diagbot/dto/PushDTO.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -33,4 +34,7 @@ public class PushDTO {
     private Map<String, List<PushBaseDTO>> dis;
     //一般治疗
     private List<TreatDTO> generaTreat = new ArrayList<>();
+
+    // 记录调试信息
+    private Map<String, Object> debug = new LinkedHashMap<>();
 }

+ 33 - 1
src/main/java/com/diagbot/facade/PushFacade.java

@@ -1,11 +1,17 @@
 package com.diagbot.facade;
 
 import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.process.PushProcess;
+import com.diagbot.util.CoreUtil;
 import com.diagbot.vo.PushVO;
+import com.diagbot.vo.StandConvert;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 /**
  * @Description: 推送facade
  * @author: zhoutg
@@ -16,13 +22,39 @@ public class PushFacade {
 
     @Autowired
     PushProcess pushProcess;
+    @Autowired
+    CommonFacade commonFacade;
+    @Autowired
+    NeoFacade neoFacade;
     /**
      * 推送业务
      * @param
      * @return
      */
     public PushDTO pushFac(PushVO pushVo) {
-        PushDTO process = pushProcess.process(pushVo);
+        Map<String, Object> debug = new LinkedHashMap<>();
+        WordCrfDTO wordCrfDTO = new WordCrfDTO();
+        long l1 = System.currentTimeMillis();
+
+        // 模型处理数据
+        long crfStart = System.currentTimeMillis();
+        wordCrfDTO = commonFacade.crf_process(pushVo);
+        CoreUtil.getDebugStr(crfStart, "模型处理耗时", debug);
+
+        // 标准词转换
+        long standStart = System.currentTimeMillis();
+        StandConvert standConvert = commonFacade.dataTypeGet(wordCrfDTO);
+        Map<String, Map<String, String>> standConvertMap = neoFacade.standConvertCrf(standConvert);
+        commonFacade.dataTypeSet(wordCrfDTO, standConvertMap);
+        CoreUtil.getDebugStr(standStart, "标准词转换耗时", debug);
+
+        // 推送
+        long pushStart = System.currentTimeMillis();
+        PushDTO process = pushProcess.process(pushVo,standConvertMap,wordCrfDTO);
+        CoreUtil.getDebugStr(pushStart, "推送耗时", debug);
+        process.setDebug(debug);
+
+        CoreUtil.getDebugStr(l1, "本次调用总计耗时", debug);
         return process;
     }
 

+ 2 - 8
src/main/java/com/diagbot/process/PushProcess.java

@@ -10,7 +10,6 @@ import com.diagbot.facade.NeoFacade;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.NeoPushVO;
 import com.diagbot.vo.PushVO;
-import com.diagbot.vo.StandConvert;
 import com.diagbot.vo.neoPushEntity.Diag;
 import com.diagbot.vo.neoPushEntity.DiagVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,15 +29,10 @@ public class PushProcess {
     NeoFacade neoFacade;
     @Autowired
     CommonFacade commonFacade;
-    public PushDTO process(PushVO pushVo) {
+    public PushDTO process(PushVO pushVo,Map<String, Map<String, String>> standConvertMap,WordCrfDTO wordCrfDTO) {
         int length = pushVo.getLength();
         PushDTO pushDTO = new PushDTO();
-        // 模型处理数据
-        WordCrfDTO wordCrfDTO = commonFacade.crf_process(pushVo);
-        // 标准词转换
-        StandConvert standConvert = commonFacade.dataTypeGet(wordCrfDTO);
-        Map<String, Map<String, String>> standConvertMap = neoFacade.standConvertCrf(standConvert);
-        commonFacade.dataTypeSet(wordCrfDTO, standConvertMap);
+
         List<String> ruleTypeList = Arrays.asList(pushVo.getFeatureType().split(","));
         Map<String, List<String>> typeWords = typeWords(standConvertMap);
         //生成push入参,供图谱调用