wangyunpeng hai 6 horas
pai
achega
4e3154f52e

+ 6 - 0
core/src/main/java/com/tzld/videoVector/handle/GlobalExceptionHandle.java

@@ -12,6 +12,8 @@ import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 
+import org.apache.catalina.connector.ClientAbortException;
+
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
@@ -62,6 +64,10 @@ public class GlobalExceptionHandle {
             response.setCode(ExceptionEnum.PARAM_ERROR.getCode());
             response.setMsg(errorMsg.toString());
             LOGGER.error("uri:" + uri + "\n" + "BindException log.", exception);
+        } else if (exception instanceof ClientAbortException) {
+            // 客户端主动断开连接,无需告警
+            LOGGER.warn("uri:" + uri + " client aborted (Broken pipe)");
+            return null;
         } else {
             response.setCode(ExceptionEnum.SYSTEM_ERROR.getCode());
             response.setMsg(ExceptionEnum.SYSTEM_ERROR.getMsg());

+ 22 - 11
core/src/main/java/com/tzld/videoVector/service/impl/VideoSearchServiceImpl.java

@@ -2,23 +2,22 @@ package com.tzld.videoVector.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.tzld.videoVector.api.VideoApiService;
-import com.tzld.videoVector.dao.mapper.pgVector.ext.ContentVectorMapperExt;
+import com.tzld.videoVector.common.constant.VectorConstants;
 import com.tzld.videoVector.dao.mapper.pgVector.DeconstructContentMapper;
 import com.tzld.videoVector.dao.mapper.pgVector.DeconstructVectorConfigMapper;
+import com.tzld.videoVector.dao.mapper.pgVector.ext.ContentVectorMapperExt;
 import com.tzld.videoVector.model.entity.DeconstructResult;
 import com.tzld.videoVector.model.entity.VideoDetail;
 import com.tzld.videoVector.model.entity.VideoMatch;
 import com.tzld.videoVector.model.param.DeconstructParam;
 import com.tzld.videoVector.model.param.GetDeconstructParam;
 import com.tzld.videoVector.model.param.MatchTopNVideoParam;
-import com.tzld.videoVector.model.po.pgVector.ContentVector;
-import com.tzld.videoVector.model.po.pgVector.DeconstructContent;
-import com.tzld.videoVector.model.po.pgVector.DeconstructContentExample;
-import com.tzld.videoVector.model.po.pgVector.DeconstructVectorConfig;
-import com.tzld.videoVector.model.po.pgVector.DeconstructVectorConfigExample;
+import com.tzld.videoVector.model.po.pgVector.*;
 import com.tzld.videoVector.model.vo.VideoMatchResult;
-import com.tzld.videoVector.common.constant.VectorConstants;
-import com.tzld.videoVector.service.*;
+import com.tzld.videoVector.service.DeconstructService;
+import com.tzld.videoVector.service.EmbeddingService;
+import com.tzld.videoVector.service.VectorStoreService;
+import com.tzld.videoVector.service.VideoSearchService;
 import com.tzld.videoVector.util.Md5Util;
 import com.tzld.videoVector.util.RedisUtils;
 import com.tzld.videoVector.util.VectorUtils;
@@ -30,7 +29,7 @@ import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.tzld.videoVector.common.constant.VectorConstants.*;
+import static com.tzld.videoVector.common.constant.VectorConstants.DEFAULT_CONFIG_CODE;
 
 @Slf4j
 @Service
@@ -299,7 +298,13 @@ public class VideoSearchServiceImpl implements VideoSearchService {
         jsonResult.put("fromCache", true);
 
         if (content.getResultJson() != null) {
-            jsonResult.put("result", JSONObject.parseObject(content.getResultJson()));
+            try {
+                jsonResult.put("result", JSONObject.parseObject(content.getResultJson()));
+            } catch (Exception e) {
+                log.warn("buildResultFromContent parseJson failed, taskId={}, resultJson={}",
+                        content.getTaskId(), content.getResultJson(), e);
+                jsonResult.put("result", content.getResultJson());
+            }
         }
 
         if (content.getFailureReason() != null) {
@@ -337,7 +342,13 @@ public class VideoSearchServiceImpl implements VideoSearchService {
         jsonResult.put("fromCache", false);
 
         if (result.getResult() != null) {
-            jsonResult.put("result", JSONObject.parseObject(result.getResult()));
+            try {
+                jsonResult.put("result", JSONObject.parseObject(result.getResult()));
+            } catch (Exception e) {
+                log.warn("buildResultFromApiResult parseJson failed, taskId={}, result={}",
+                        result.getTaskId(), result.getResult(), e);
+                jsonResult.put("result", result.getResult());
+            }
         }
 
         if (result.getReason() != null) {