Pārlūkot izejas kodu

优化百度和face++代码

lideyin 5 gadi atpakaļ
vecāks
revīzija
d983c00c7c

+ 6 - 0
examcloud-core-oe-face-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/face/service/impl/ExamCaptureServiceImpl.java

@@ -106,7 +106,13 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                 jsonHttpResponseHolder = FaceppClient.getClient().
                         compareWithTokenAndImageUrl(examCaptureQueue.getBaseFaceToken(),
                                 examCaptureQueue.getFileUrl(), examCaptureQueue.getFileUrl().replace(main, backup));
+                /*//test code
+                jsonHttpResponseHolder =new JsonHttpResponseHolder();
+                jsonHttpResponseHolder.setStatusCode(200);
+                jsonHttpResponseHolder.setRespBody(JSONObject.parseObject("{\"error_message\":\"API_NOT_FOUND\"}"));*/
+
                 faceCompareResult = jsonHttpResponseHolder.getRespBody();
+
             } catch (StatusException e) {
                 //如果错误码是801,802,803直接结束,不重试
                 if (e.getCode().equals("801") || e.getCode().equals("802") || e.getCode().equals("803")) {

+ 49 - 44
examcloud-core-oe-face-starter/src/main/java/cn/com/qmth/examcloud/core/oe/student/face/starter/config/ProcessFaceCompareAlarmTask.java

@@ -1,6 +1,8 @@
 package cn.com.qmth.examcloud.core.oe.student.face.starter.config;
 
 import cn.com.qmth.examcloud.commons.exception.StatusException;
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.Util;
 import cn.com.qmth.examcloud.core.oe.student.face.service.impl.ExamCaptureProcessStatisticController;
 import cn.com.qmth.examcloud.exchange.inner.api.SmsCloudService;
@@ -35,7 +37,7 @@ public class ProcessFaceCompareAlarmTask implements ApplicationRunner {
     private static final int COUNT_WARN_THRESHOLD = 10;
     @Autowired
     SmsCloudService smsCloudService;
-    private final Log captureLog = LogFactory.getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
+    private final ExamCloudLog captureLog = ExamCloudLogFactory.getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
 
     @Override
     public void run(ApplicationArguments args) throws Exception {
@@ -49,56 +51,59 @@ public class ProcessFaceCompareAlarmTask implements ApplicationRunner {
      */
     private void faceCompareAlarm() {
         while (true) {
-//            if (captureLog.isDebugEnabled()){
-            captureLog.debug("[FACE_COMPARE_ALARM] 进入人脸" + System.currentTimeMillis() + "....totalCount=" +
-                    ExamCaptureProcessStatisticController.getFaceCompareCount() + " ,failCount=" +
-                    ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
-//            }
+            try {
+                if (captureLog.isDebugEnabled()) {
+                    captureLog.debug("[FACE_COMPARE_ALARM] 进入人脸" + System.currentTimeMillis() + "....totalCount=" +
+                            ExamCaptureProcessStatisticController.getFaceCompareCount() + " ,failCount=" +
+                            ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
+                }
 
-            //如果每分钟失败率超过50%则发短信报警,且总数不少于10次则短信报警
-            if (ExamCaptureProcessStatisticController.getFaceCompareCount() > COUNT_WARN_THRESHOLD &&
-                    ExamCaptureProcessStatisticController.getFaceCompareFailureRate() > RATE_WARN_THRESHOLD) {
-                SysPropertyCacheBean faceCompareSmsAssemblyCodeProperty = CacheHelper.getSysProperty("capture.faceCompare.smsAssemblyCode");
+                //如果每分钟失败率超过50%则发短信报警,且总数不少于10次则短信报警
+                if (ExamCaptureProcessStatisticController.getFaceCompareCount() > COUNT_WARN_THRESHOLD &&
+                        ExamCaptureProcessStatisticController.getFaceCompareFailureRate() > RATE_WARN_THRESHOLD) {
+                    SysPropertyCacheBean faceCompareSmsAssemblyCodeProperty = CacheHelper.getSysProperty("capture.faceCompare.smsAssemblyCode");
 
-                if (!faceCompareSmsAssemblyCodeProperty.getHasValue()) {
-//                    if (captureLog.isErrorEnabled()){
-                    captureLog.error("[FACE_COMPARE_ALARM.] 未配置人脸比对的短信模板代码,totalCount=" + ExamCaptureProcessStatisticController.getFaceCompareCount() + ",errorCount=" + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
-//                    }
-                    throw new StatusException("300001", "未配置人脸比对的短信模板代码");
-                }
-                SysPropertyCacheBean smsPhoneProperty = CacheHelper.getSysProperty("capture.sms.phones");
-                if (!smsPhoneProperty.getHasValue()) {
-//                    if (captureLog.isErrorEnabled()){
-                    captureLog.error("[FACE_COMPARE_ALARM.] 未配置图片处理失败的通知手机号,totalCount=" + ExamCaptureProcessStatisticController.getFaceCompareCount() + ",errorCount=" + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
-//                    }
-                    throw new StatusException("300002", "未配置图片处理失败的通知手机号");
-                }
+                    if (!faceCompareSmsAssemblyCodeProperty.getHasValue()) {
+                        if (captureLog.isErrorEnabled()) {
+                            captureLog.error("[FACE_COMPARE_ALARM.] 未配置人脸比对的短信模板代码,totalCount=" + ExamCaptureProcessStatisticController.getFaceCompareCount() + ",errorCount=" + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
+                        }
+                        throw new StatusException("300001", "未配置人脸比对的短信模板代码");
+                    }
+                    SysPropertyCacheBean smsPhoneProperty = CacheHelper.getSysProperty("capture.sms.phones");
+                    if (!smsPhoneProperty.getHasValue()) {
+                        if (captureLog.isErrorEnabled()) {
+                            captureLog.error("[FACE_COMPARE_ALARM.] 未配置图片处理失败的通知手机号,totalCount=" + ExamCaptureProcessStatisticController.getFaceCompareCount() + ",errorCount=" + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
+                        }
+                        throw new StatusException("300002", "未配置图片处理失败的通知手机号");
+                    }
 
-                List<String> phoneList = Arrays.asList(smsPhoneProperty.getValue().toString().split(","));
+                    List<String> phoneList = Arrays.asList(smsPhoneProperty.getValue().toString().split(","));
 
-//                List<String> phoneList = Arrays.asList("13717595977");
-                SendSmsReq sendSmsReq = new SendSmsReq();
-                sendSmsReq.setPhoneList(phoneList);
-                sendSmsReq.setSmsAssemblyCode(faceCompareSmsAssemblyCodeProperty.getValue().toString());
-//                sendSmsReq.setSmsAssemblyCode("FACECOMPARE");
+    //                List<String> phoneList = Arrays.asList("13717595977");
+                    SendSmsReq sendSmsReq = new SendSmsReq();
+                    sendSmsReq.setPhoneList(phoneList);
+                    sendSmsReq.setSmsAssemblyCode(faceCompareSmsAssemblyCodeProperty.getValue().toString());
+    //                sendSmsReq.setSmsAssemblyCode("FACECOMPARE");
 
-                HashMap<String, String> params = new HashMap<>();
-                params.put("totalCount", String.valueOf(ExamCaptureProcessStatisticController.getFaceCompareCount()));
-                params.put("errorCount", String.valueOf(ExamCaptureProcessStatisticController.getFaceCompareFailedCount()));
-                sendSmsReq.setParams(params);
-                try {
-//                    if (captureLog.isDebugEnabled()){
-                    captureLog.debug("[FACE_COMPARE_ALARM.] 开始调用发送短信接口,totalCount=" + ExamCaptureProcessStatisticController.getFaceCompareCount() + ",errorCount=" + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
-//                    }
-                    smsCloudService.sendSms(sendSmsReq);
-                } catch (Exception e) {
-                    captureLog.error("[FACE_COMPARE_ALARM.] 发送短信出现异常", e);
+                    HashMap<String, String> params = new HashMap<>();
+                    params.put("totalCount", String.valueOf(ExamCaptureProcessStatisticController.getFaceCompareCount()));
+                    params.put("errorCount", String.valueOf(ExamCaptureProcessStatisticController.getFaceCompareFailedCount()));
+                    sendSmsReq.setParams(params);
+                    try {
+                        if (captureLog.isDebugEnabled()) {
+                            captureLog.debug("[FACE_COMPARE_ALARM.] 开始调用发送短信接口,totalCount=" + ExamCaptureProcessStatisticController.getFaceCompareCount() + ",errorCount=" + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
+                        }
+                        smsCloudService.sendSms(sendSmsReq);
+                    } catch (Exception e) {
+                        captureLog.error("[FACE_COMPARE_ALARM.] 发送短信出现异常", e);
+                    }
                 }
+                //每1分钟重置一次总数量与失败数量
+                ExamCaptureProcessStatisticController.resetFaceCompareCount();
+                ExamCaptureProcessStatisticController.resetFaceCompareFailureCount();
+            } catch (StatusException e) {
+                    captureLog.error("[FACE_COMPARE_ALARM.] 人脸比对出现异常 ",e);
             }
-            //每1分钟重置一次总数量与失败数量
-            ExamCaptureProcessStatisticController.resetFaceCompareCount();
-            ExamCaptureProcessStatisticController.resetFaceCompareFailureCount();
-
             //每分钟轮循一次
             Util.sleep(60);
         }