|
@@ -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);
|
|
|
}
|