Przeglądaj źródła

update FaceApiParam

deason 11 miesięcy temu
rodzic
commit
331daa6247

+ 28 - 2
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/bean/FaceApiParam.java

@@ -6,6 +6,16 @@ public class FaceApiParam implements Serializable {
 
     private static final long serialVersionUID = 2983309896884898091L;
 
+    /**
+     * 最大线程数【默认:3】
+     */
+    private int maxThreadNum = 3;
+
+    /**
+     * 最大错误次数【默认:10】
+     */
+    private int maxErrorNum = 10;
+
     /**
      * 人脸比对 - 使用百度API还是Face++API【默认:true】
      */
@@ -17,9 +27,25 @@ public class FaceApiParam implements Serializable {
     private boolean useLocalBaiduApiForFaceCompare = true;
 
     /**
-     * 百度真实性检测 - 使用离线版还是在线版【默认:false】
+     * 百度真实性检测 - 使用离线版还是在线版【默认:true】
      */
-    private boolean useLocalBaiduApiForFaceLiveness = false;
+    private boolean useLocalBaiduApiForFaceLiveness = true;
+
+    public int getMaxThreadNum() {
+        return maxThreadNum;
+    }
+
+    public void setMaxThreadNum(int maxThreadNum) {
+        this.maxThreadNum = maxThreadNum;
+    }
+
+    public int getMaxErrorNum() {
+        return maxErrorNum;
+    }
+
+    public void setMaxErrorNum(int maxErrorNum) {
+        this.maxErrorNum = maxErrorNum;
+    }
 
     public boolean isUseBaiduApi() {
         return useBaiduApi;

+ 40 - 20
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/job/FaceVerifyJobHandler.java

@@ -31,9 +31,11 @@ public class FaceVerifyJobHandler {
     private ExamCaptureQueueService examCaptureQueueService;
 
     public void run(int shardTotal, int shardIndex, String jobParam) throws Exception {
-        int batchSize = 100, maxErrorNum = 10;
+        FaceApiParam param = this.parseJobParam(jobParam);
+
+        int batchSize = 100;
         List<Long> todoExamRecordDataIds = examCaptureQueueRepo.findQueuesGroupByExamRecordDataId(shardTotal,
-                shardIndex, batchSize, maxErrorNum);
+                shardIndex, batchSize, param.getMaxErrorNum());
 
         log.warn("分片任务_FACE_{}_{}  curTodoExamRecordDataIds_size:{}", shardTotal, shardIndex,
                 todoExamRecordDataIds.size());
@@ -41,24 +43,6 @@ public class FaceVerifyJobHandler {
             return;
         }
 
-        FaceApiParam param = new FaceApiParam();
-        JsonNode jsonParams = new JsonMapper().getNode(jobParam);
-        if (jsonParams != null) {
-            JsonNode useLocalBaiduApiForFaceCompare = jsonParams.get("useLocalBaiduApiForFaceCompare");
-            if (useLocalBaiduApiForFaceCompare != null) {
-                param.setUseLocalBaiduApiForFaceCompare(useLocalBaiduApiForFaceCompare.asBoolean(true));
-            } else {
-                param.setUseLocalBaiduApiForFaceCompare(true);
-            }
-
-            JsonNode useLocalBaiduApiForFaceLiveness = jsonParams.get("useLocalBaiduApiForFaceLiveness");
-            if (useLocalBaiduApiForFaceLiveness != null) {
-                param.setUseLocalBaiduApiForFaceLiveness(useLocalBaiduApiForFaceLiveness.asBoolean(false));
-            } else {
-                param.setUseLocalBaiduApiForFaceLiveness(false);
-            }
-        }
-
         for (Long examRecordDataId : todoExamRecordDataIds) {
             final String lockKey = CacheConstants.LOCK_FACE_COMPARE + examRecordDataId;
             try {
@@ -86,4 +70,40 @@ public class FaceVerifyJobHandler {
         }
     }
 
+    private FaceApiParam parseJobParam(String jobParam) {
+        JsonNode jsonParams = new JsonMapper().getNode(jobParam);
+        if (jsonParams == null) {
+            return new FaceApiParam();
+        }
+
+        FaceApiParam param = new FaceApiParam();
+
+        JsonNode maxThreadNum = jsonParams.get("maxThreadNum");
+        if (maxThreadNum != null) {
+            param.setMaxThreadNum(maxThreadNum.asInt(3));
+        }
+
+        JsonNode maxErrorNum = jsonParams.get("maxErrorNum");
+        if (maxErrorNum != null) {
+            param.setMaxErrorNum(maxErrorNum.asInt(10));
+        }
+
+        JsonNode useBaiduApi = jsonParams.get("useBaiduApi");
+        if (useBaiduApi != null) {
+            param.setUseBaiduApi(useBaiduApi.asBoolean(true));
+        }
+
+        JsonNode useLocalBaiduApiForFaceCompare = jsonParams.get("useLocalBaiduApiForFaceCompare");
+        if (useLocalBaiduApiForFaceCompare != null) {
+            param.setUseLocalBaiduApiForFaceCompare(useLocalBaiduApiForFaceCompare.asBoolean(true));
+        }
+
+        JsonNode useLocalBaiduApiForFaceLiveness = jsonParams.get("useLocalBaiduApiForFaceLiveness");
+        if (useLocalBaiduApiForFaceLiveness != null) {
+            param.setUseLocalBaiduApiForFaceLiveness(useLocalBaiduApiForFaceLiveness.asBoolean(true));
+        }
+
+        return param;
+    }
+
 }