Explorar o código

Merge remote-tracking branch 'remotes/origin/release_v4.1.0'

deason %!s(int64=3) %!d(string=hai) anos
pai
achega
ce614d36e2
Modificáronse 32 ficheiros con 351 adicións e 456 borrados
  1. 41 10
      .gitignore
  2. 23 20
      examcloud-core-oe-task-api-provider/pom.xml
  3. 1 1
      examcloud-core-oe-task-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/task/controller/ExamCaptureController.java
  4. 15 13
      examcloud-core-oe-task-base/pom.xml
  5. 6 5
      examcloud-core-oe-task-dao/pom.xml
  6. 18 15
      examcloud-core-oe-task-service/pom.xml
  7. 1 5
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/impl/ExamCaptureQueueServiceImpl.java
  8. 25 29
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/impl/ExamCaptureServiceImpl.java
  9. 3 5
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/AfterHandInExamExecutor.java
  10. 3 3
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/ClearExamDataCacheExecutor.java
  11. 9 9
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/DataGainExamExecutor.java
  12. 3 4
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/HandInExamExecutor.java
  13. 3 3
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/SyncExamDataExecutor.java
  14. 8 8
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/worker/BaiduFaceLivenessWorker.java
  15. 8 8
      examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/worker/FacePPCompareWorker.java
  16. 65 59
      examcloud-core-oe-task-starter/pom.xml
  17. 1 1
      examcloud-core-oe-task-starter/shell/start.args
  18. 8 25
      examcloud-core-oe-task-starter/shell/start.sh
  19. 4 14
      examcloud-core-oe-task-starter/shell/stop.sh
  20. 7 14
      examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/OETaskApp.java
  21. 4 5
      examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ExamCloudResourceManager.java
  22. 10 11
      examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ProcessBaiduFaceLivenessAlarmTask.java
  23. 10 11
      examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ProcessBaiduFacelivenessTask.java
  24. 13 14
      examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ProcessFaceCompareAlarmTask.java
  25. 10 11
      examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ProcessFaceCompareQueueTask.java
  26. 3 3
      examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/StreamTaskExecutor.java
  27. 2 2
      examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/SwaggerConfig.java
  28. 5 10
      examcloud-core-oe-task-starter/src/main/resources/application.properties
  29. 0 1
      examcloud-core-oe-task-starter/src/main/resources/classpath.location
  30. 33 133
      examcloud-core-oe-task-starter/src/main/resources/log4j2.xml
  31. 4 0
      jenkins.sh
  32. 5 4
      pom.xml

+ 41 - 10
.gitignore

@@ -1,19 +1,50 @@
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
 *.class
+*.log
 
-# Proguard folder generated by ide
-.project
+
+### Eclipse & STS ###
+.apt_generated
 .classpath
+.factorypath
+.project
 .settings
-target/
-.idea/
-*.iml
+.springBeans
+.sts4-cache
+
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
 
-# Log Files
-*.log
-*.class
 
+### VS Code ###
+.vscode
+node_modules
+package-lock.json
+yarn.lock
 
-# Package Files #
-*.jar
+
+### Package Files ###
+*.zip
 *.war
 *.ear
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+target/
+
+.flattened-pom.xml
+.DS_Store
+

+ 23 - 20
examcloud-core-oe-task-api-provider/pom.xml

@@ -1,25 +1,28 @@
 <?xml version="1.0"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>cn.com.qmth.examcloud</groupId>
-		<artifactId>examcloud-core-oe-task</artifactId>
-		<version>v4.0.2-RELEASE</version>
-	</parent>
-	<artifactId>examcloud-core-oe-task-api-provider</artifactId>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+         xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>examcloud-core-oe-task-api-provider</artifactId>
+    <packaging>jar</packaging>
 
-	<dependencies>
-		<dependency>
-			<groupId>cn.com.qmth.examcloud</groupId>
-			<artifactId>examcloud-core-oe-task-service</artifactId>
-			<version>${examcloud.version}</version>
-		</dependency>
+    <parent>
+        <groupId>cn.com.qmth.examcloud</groupId>
+        <artifactId>examcloud-core-oe-task</artifactId>
+        <version>${revision}</version>
+    </parent>
 
-		<dependency>
-			<groupId>cn.com.qmth.examcloud.rpc</groupId>
-			<artifactId>examcloud-core-oe-task-api</artifactId>
-			<version>${examcloud.version}</version>
-		</dependency>
-	</dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>cn.com.qmth.examcloud</groupId>
+            <artifactId>examcloud-core-oe-task-service</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.com.qmth.examcloud.rpc</groupId>
+            <artifactId>examcloud-core-oe-task-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
 
 </project>

+ 1 - 1
examcloud-core-oe-task-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/task/controller/ExamCaptureController.java

@@ -177,7 +177,7 @@ public class ExamCaptureController extends ControllerSupport {
                 }
             } catch (JSONException e) {
                 saveExamCaptureQueueInfo.setCameraInfos(null);
-                log.error("ExamCaptureQueueController-uploadExamCapture-004:虚拟摄像头信息格式不正确", e);
+                LOGGER.error("ExamCaptureQueueController-uploadExamCapture-004:虚拟摄像头信息格式不正确", e);
             }
         }
         validateUpyunSign(saveExamCaptureQueueInfo.getSignIdentifier(), saveExamCaptureQueueInfo.getFileUrl(), user.getUserId());

+ 15 - 13
examcloud-core-oe-task-base/pom.xml

@@ -2,12 +2,14 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
+    <artifactId>examcloud-core-oe-task-base</artifactId>
+    <packaging>jar</packaging>
+
     <parent>
         <groupId>cn.com.qmth.examcloud</groupId>
         <artifactId>examcloud-core-oe-task</artifactId>
-        <version>v4.0.2-RELEASE</version>
+        <version>${revision}</version>
     </parent>
-    <artifactId>examcloud-core-oe-task-base</artifactId>
 
     <dependencies>
         <dependency>
@@ -23,58 +25,58 @@
         <dependency>
             <groupId>cn.com.qmth.examcloud</groupId>
             <artifactId>examcloud-web</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud</groupId>
             <artifactId>examcloud-support</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
 
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-exchange-inner-api-client</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-core-basic-api-client</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-core-examwork-api-client</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-core-questions-api-client</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-core-oe-admin-api-client</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-core-oe-student-api-client</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-ws-api-client</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-core-marking-api-client</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rpc</groupId>
             <artifactId>examcloud-global-api</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
 
         <dependency>

+ 6 - 5
examcloud-core-oe-task-dao/pom.xml

@@ -2,24 +2,25 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
+    <artifactId>examcloud-core-oe-task-dao</artifactId>
+    <packaging>jar</packaging>
+
     <parent>
         <groupId>cn.com.qmth.examcloud</groupId>
         <artifactId>examcloud-core-oe-task</artifactId>
-        <version>v4.0.2-RELEASE</version>
+        <version>${revision}</version>
     </parent>
-    <artifactId>examcloud-core-oe-task-dao</artifactId>
 
     <dependencies>
         <dependency>
             <groupId>cn.com.qmth.examcloud</groupId>
             <artifactId>examcloud-core-oe-task-base</artifactId>
-            <version>${examcloud.version}</version>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud</groupId>
             <artifactId>examcloud-core-oe-student-dao</artifactId>
-            <version>${examcloud.version}</version>
-            <scope>compile</scope>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 

+ 18 - 15
examcloud-core-oe-task-service/pom.xml

@@ -1,19 +1,22 @@
 <?xml version="1.0"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>cn.com.qmth.examcloud</groupId>
-		<artifactId>examcloud-core-oe-task</artifactId>
-		<version>v4.0.2-RELEASE</version>
-	</parent>
-	<artifactId>examcloud-core-oe-task-service</artifactId>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+         xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>examcloud-core-oe-task-service</artifactId>
+    <packaging>jar</packaging>
 
-	<dependencies>
-		<dependency>
-			<groupId>cn.com.qmth.examcloud</groupId>
-			<artifactId>examcloud-core-oe-task-dao</artifactId>
-			<version>${examcloud.version}</version>
-		</dependency>
-	</dependencies>
+    <parent>
+        <groupId>cn.com.qmth.examcloud</groupId>
+        <artifactId>examcloud-core-oe-task</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>cn.com.qmth.examcloud</groupId>
+            <artifactId>examcloud-core-oe-task-dao</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
 
 </project>

+ 1 - 5
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/impl/ExamCaptureQueueServiceImpl.java

@@ -11,8 +11,6 @@ import cn.com.qmth.examcloud.core.oe.task.service.bean.SaveExamCaptureQueueInfo;
 import cn.com.qmth.examcloud.support.cache.CacheHelper;
 import cn.com.qmth.examcloud.support.cache.bean.StudentCacheBean;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,8 +29,6 @@ public class ExamCaptureQueueServiceImpl implements ExamCaptureQueueService {
 
     private static final Logger log = LoggerFactory.getLogger(ExamCaptureQueueServiceImpl.class);
 
-    private final Log captureLog = LogFactory.getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
-
     @Autowired
     private ExamCaptureQueueRepo examCaptureQueueRepo;
 
@@ -44,7 +40,7 @@ public class ExamCaptureQueueServiceImpl implements ExamCaptureQueueService {
                     "000000", new Date());
             return true;
         } catch (Exception e) {
-            captureLog.error("[UPDATE_FAILED_CAPTURE_QUEUE] 保存照片队列处理失败数据时出现异常", e);
+            log.error("[UPDATE_FAILED_CAPTURE_QUEUE] 保存照片队列处理失败数据时出现异常", e);
             return false;
         }
     }

+ 25 - 29
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/impl/ExamCaptureServiceImpl.java

@@ -28,8 +28,6 @@ import cn.com.qmth.examcloud.web.redis.RedisClient;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.json.JSONException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -54,8 +52,6 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
 
     private static final Logger log = LoggerFactory.getLogger(ExamCaptureServiceImpl.class);
 
-    private final Log captureLog = LogFactory.getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
-
     @Autowired
     private ExamCaptureRepo examCaptureRepo;
 
@@ -96,7 +92,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
 
             //仅用于日志时间计算
             long startTime = System.currentTimeMillis();
-            captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对开始...");
+            log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对开始...");
 
             //调用face++API执行人脸比对,得到返回结果
             JsonHttpResponseHolder jsonHttpResponseHolder = null;
@@ -114,14 +110,14 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                     examCaptureQueue.setFaceCompareResult(e.getDesc());
                     saveExamCaptureAndDeleteQueue(examCaptureQueue);
 
-                    captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对无法处理的图片地址,保存人脸检测最终结果并删除队列,errMsg=" + e.getDesc());
+                    log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对无法处理的图片地址,保存人脸检测最终结果并删除队列,errMsg=" + e.getDesc());
                     return;
                 }
                 throw e;
             }
 
-            if (captureLog.isDebugEnabled()) {
-                captureLog.debug("[DISPOSE_FACE_COMPARE] 调用face++API执行人脸比对,得到返回结果faceCompareResult:" + faceCompareResult);
+            if (log.isDebugEnabled()) {
+                log.debug("[DISPOSE_FACE_COMPARE] 调用face++API执行人脸比对,得到返回结果faceCompareResult:" + faceCompareResult);
             }
             examCaptureQueue.setFaceCompareResult(faceCompareResult.toString());
 
@@ -131,7 +127,8 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
 
                 //如果API并发次数超过上限,则保存错误信息到队列,并抛出异常,用于协调满载队列线程
                 if (errMsg.contains(Constants.FACE_COMPARE_CONCURRENCY_LIMIT_EXCEEDED)) {
-                    captureLog.error("[FaceCompareQueue] FacePlusPlus_QPS_CONCURRENCY_LIMITED");
+
+                    log.error("[FaceCompareQueue] FacePlusPlus_QPS_CONCURRENCY_LIMITED");
 
                     examCaptureQueueService.saveExamCaptureQueueEntityByFailed(examCaptureQueue.getId(),
                             "SatusCode:" + jsonHttpResponseHolder.getStatusCode() + " | " + faceCompareResult.toString(),
@@ -152,7 +149,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                     if (errMsg.contains(notRetryErrMsgsArr[i])) {
                         saveExamCaptureAndDeleteQueue(examCaptureQueue);
 
-                        captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对无法处理的图片,保存人脸检测最终结果并删除队列,errMsg=" + errMsg);
+                        log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对无法处理的图片,保存人脸检测最终结果并删除队列,errMsg=" + errMsg);
 
                         return;
                     }
@@ -162,7 +159,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                 if (errMsg.contains(Constants.FACE_COMPARE_IMAGE_DOWNLOAD_TIMEOUT)) {
                     faceCompareTimeOutTimes++;
 
-                    captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对超时,将进行第" + faceCompareTimeOutTimes + "次重试");
+                    log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对超时,将进行第" + faceCompareTimeOutTimes + "次重试");
 
                     //如果没有达到最大重试次数,则继续重试
                     if (faceCompareTimeOutTimes < maxRetryTimes) {
@@ -172,17 +169,17 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                     //超过最大重试次数,则直接保存最终结果
                     saveExamCaptureAndDeleteQueue(examCaptureQueue);
 
-                    captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对超过最大检测次数:" + maxRetryTimes + ",停止重试,直接保存最终结果");
+                    log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对超过最大检测次数:" + maxRetryTimes + ",停止重试,直接保存最终结果");
                     return;
                 }
 
-                captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对出现错误,即将重试,errMsg:" + errMsg);
+                log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对出现错误,即将重试,errMsg:" + errMsg);
                 // 其它错误类型,保存错误信息到队列中,待自动重新服务处理
                 examCaptureQueueService.saveExamCaptureQueueEntityByFailed(examCaptureQueue.getId(),
                         "SatusCode:" + jsonHttpResponseHolder.getStatusCode() + " | " + faceCompareResult.toString(),
                         ExamCaptureQueueStatus.PROCESS_FACE_COMPARE_FAILED);
                 ExamCaptureProcessStatisticController.increaseFaceCompareFailedCount();//增加错误次数
-                captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对出现错误,增加错误次数后failedCount:" +
+                log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对出现错误,增加错误次数后failedCount:" +
                         ExamCaptureProcessStatisticController.getFaceCompareFailedCount() + ",totalCount=" +
                         ExamCaptureProcessStatisticController.getFaceCompareCount());
             }
@@ -197,7 +194,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                     examCaptureQueue.setStatus(ExamCaptureQueueStatus.PROCESS_FACE_COMPARE_COMPLETE);
                     disposeFaceCompareSuccessful(examCaptureQueue);
 
-                    captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对完成,即将进行百度活体检测,耗时:" + (System.currentTimeMillis() - startTime) + " ms");
+                    log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对完成,即将进行百度活体检测,耗时:" + (System.currentTimeMillis() - startTime) + " ms");
                 }
                 //face++ 没有检测到人脸,直接保存人脸检测最终结果并删除队列
                 else {
@@ -205,7 +202,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                     examCaptureQueue.setStranger(false);
                     saveExamCaptureAndDeleteQueue(examCaptureQueue);
 
-                    captureLog.debug("[DISPOSE_FACE_COMPARE] face++人脸比对完成,且未检测到人脸,耗时:" + (System.currentTimeMillis() - startTime) + " ms");
+                    log.debug("[DISPOSE_FACE_COMPARE] face++人脸比对完成,且未检测到人脸,耗时:" + (System.currentTimeMillis() - startTime) + " ms");
                 }
             }
         } while (retry);
@@ -238,7 +235,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
 
             //仅用于日志时间计算
             long startTime = System.currentTimeMillis();
-            captureLog.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测开始...");
+            log.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测开始...");
 
             //获取百度活检结果
             JsonHttpResponseHolder jsonHttpResponseHolder = null;
@@ -253,7 +250,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                     examCaptureQueue.setFacelivenessResult(e.getDesc());
                     saveExamCaptureAndDeleteQueue(examCaptureQueue);
 
-                    captureLog.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活检无法处理的图片地址,保存人脸检测最终结果并删除队列,errMsg=" + e.getDesc());
+                    log.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活检无法处理的图片地址,保存人脸检测最终结果并删除队列,errMsg=" + e.getDesc());
                     return;
                 }
                 throw e;
@@ -267,8 +264,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
 
                 //如果API并发次数超过上限,则保存错误信息到队列,并抛出异常,用于协调满载队列线程
                 if (errCode.equals(Constants.BAIDU_FACELIVENESS_QPS_LIMIT_EXCEEDED_CODE)) {
-
-                    captureLog.error("[FaceLivenessQueue] Baidu_QPS_CONCURRENCY_LIMITED");
+                    log.error("[FaceLivenessQueue] Baidu_QPS_CONCURRENCY_LIMITED");
 
                     examCaptureQueueService.saveExamCaptureQueueEntityByFailed(examCaptureQueue.getId(),
                             "SatusCode:" + jsonHttpResponseHolder.getStatusCode() + " | " + faceLivenessResultJson.toString(),
@@ -287,7 +283,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                 for (int i = 0; i < notRetryErrMsgsArr.length; i++) {
                     //如果是配置中的无法处理的图片,则保存人脸检测最终结果并删除队列
                     if (errCode.equals(notRetryErrMsgsArr[i])) {
-                        captureLog.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测,无法处理的图片,将保存人脸检测最终结果并删除队列,errCode=" + errCode);
+                        log.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测,无法处理的图片,将保存人脸检测最终结果并删除队列,errCode=" + errCode);
 
                         saveExamCaptureAndDeleteQueue(examCaptureQueue);
                         return;
@@ -298,7 +294,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                 if (errCode.equals(Constants.BAIDU_FACELIVENESS_CONNECTION_OR_READ_DATA_TIME_OUT_CODE)) {
                     facelivenessTimeOutTimes++;
 
-                    captureLog.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测超时,将进行第" + facelivenessTimeOutTimes + "次重试");
+                    log.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测超时,将进行第" + facelivenessTimeOutTimes + "次重试");
 
                     //如果没有达到最大重试次数,则继续重试
                     if (facelivenessTimeOutTimes < maxRetryTimes) {
@@ -309,23 +305,23 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                     //超过最大重试次数,则直接保存最终结果
                     saveExamCaptureAndDeleteQueue(examCaptureQueue);
 
-                    captureLog.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测超过最大检测次数:" + maxRetryTimes + ",停止重试,直接保存最终结果");
+                    log.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测超过最大检测次数:" + maxRetryTimes + ",停止重试,直接保存最终结果");
                     return;
                 }
 
-                captureLog.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测出现错误,即将重试,错误码:" + errCode);
+                log.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测出现错误,即将重试,错误码:" + errCode);
                 // 其它错误类型,保存错误信息到队列中,待自动重新服务处理
                 examCaptureQueueService.saveExamCaptureQueueEntityByFailed(examCaptureQueue.getId(),
                         "SatusCode:" + jsonHttpResponseHolder.getStatusCode() + " | " + faceLivenessResultJson.toString(), ExamCaptureQueueStatus.PROCESS_FACELIVENESS_FAILED);
                 ExamCaptureProcessStatisticController.increaseFaceLivenessDetectFailedCount();//增加错误次数
-                captureLog.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测出现错误,增加错误次数后failedCount:" + ExamCaptureProcessStatisticController.getFaceLivenessDetectFailedCount());
+                log.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测出现错误,增加错误次数后failedCount:" + ExamCaptureProcessStatisticController.getFaceLivenessDetectFailedCount());
             }
             //百度活体检测成功,则保存最终检测结果,并删除临时的图片处理队列
             else {
                 examCaptureQueue.setFacelivenessResult(faceLivenessResultJson.toString());
                 saveExamCaptureAndDeleteQueue(examCaptureQueue);
 
-                captureLog.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测完成,耗时:" + (System.currentTimeMillis() - startTime) + " ms");
+                log.debug("[DISPOSE_BAIDUFACELIVENESS] 百度活体检测完成,耗时:" + (System.currentTimeMillis() - startTime) + " ms");
             }
         } while (retry);
     }
@@ -373,7 +369,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                 compareFaceSyncInfo.setExistsSystemError(true);
                 compareFaceSyncInfo.setErrorMsg(e.getDesc());
 
-                captureLog.error("[COMPARE_FACE_SYNC] face++人脸比对无法处理的图片地址,errMsg=" + e.getDesc(), e);
+                log.error("[COMPARE_FACE_SYNC] face++人脸比对无法处理的图片地址,errMsg=" + e.getDesc(), e);
                 return compareFaceSyncInfo;
             }
             throw e;
@@ -382,7 +378,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
             compareFaceSyncInfo.setExistsSystemError(true);
             compareFaceSyncInfo.setErrorMsg("系统异常");
 
-            captureLog.error("[COMPARE_FACE_SYNC] 未处理的系统异常,errMsg=" + e.getMessage(), e);
+            log.error("[COMPARE_FACE_SYNC] 未处理的系统异常,errMsg=" + e.getMessage(), e);
             return compareFaceSyncInfo;
         }
         if (facePPResult.containsKey(Constants.ERROR_MSG)) {
@@ -393,7 +389,7 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                 compareFaceSyncInfo.setExistsSystemError(true);
             }
             if (errMsg.contains(Constants.FACE_COMPARE_CONCURRENCY_LIMIT_EXCEEDED)) {
-                captureLog.error("[FaceCompare] FacePlusPlus_QPS_CONCURRENCY_LIMITED");
+                log.error("[FaceCompare] FacePlusPlus_QPS_CONCURRENCY_LIMITED");
                 compareFaceSyncInfo.setExistsSystemError(true);
             }
             compareFaceSyncInfo.setErrorMsg("facePP called failed : " + facePPResult.toString());

+ 3 - 5
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/AfterHandInExamExecutor.java

@@ -4,8 +4,6 @@ import cn.com.qmth.examcloud.commons.helpers.KeyValuePair;
 import cn.com.qmth.examcloud.commons.helpers.ObjectHolder;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.NodeExecuter;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.core.oe.task.service.ExamRecordDataService;
 import cn.com.qmth.examcloud.support.Constants;
 import cn.com.qmth.examcloud.support.cache.CacheHelper;
@@ -13,6 +11,8 @@ import cn.com.qmth.examcloud.support.cache.bean.SysPropertyCacheBean;
 import cn.com.qmth.examcloud.support.enums.ExamRecordStatus;
 import cn.com.qmth.examcloud.support.examing.ExamRecordData;
 import cn.com.qmth.examcloud.web.helpers.SequenceLockHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -32,9 +32,7 @@ public class AfterHandInExamExecutor implements NodeExecuter<Long, ExamRecordDat
 
     private static Long DEFAULT_MAX_PROCESS_SECONDS = 30L;
 
-    @Autowired
-    private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(AfterHandInExamExecutor.class);
-
+    private static final Logger LOG = LoggerFactory.getLogger(AfterHandInExamExecutor.class);
 
     /**
      * 执行

+ 3 - 3
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/ClearExamDataCacheExecutor.java

@@ -4,8 +4,6 @@ import cn.com.qmth.examcloud.commons.helpers.KeyValuePair;
 import cn.com.qmth.examcloud.commons.helpers.ObjectHolder;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.NodeExecuter;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.core.oe.task.service.ExamingSessionService;
 import cn.com.qmth.examcloud.support.Constants;
 import cn.com.qmth.examcloud.support.enums.SyncStatus;
@@ -16,6 +14,8 @@ import cn.com.qmth.examcloud.support.redis.RedisKeyHelper;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import cn.com.qmth.examcloud.web.helpers.SequenceLockHelper;
 import cn.com.qmth.examcloud.web.redis.RedisClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -34,7 +34,7 @@ public class ClearExamDataCacheExecutor implements NodeExecuter<Long, ExamRecord
     @Autowired
     private RedisClient redisClient;
 
-    private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(ClearExamDataCacheExecutor.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ClearExamDataCacheExecutor.class);
 
     @Autowired
     private ExamingSessionService examingSessionService;

+ 9 - 9
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/DataGainExamExecutor.java

@@ -4,8 +4,6 @@ import cn.com.qmth.examcloud.commons.helpers.KeyValuePair;
 import cn.com.qmth.examcloud.commons.helpers.ObjectHolder;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.NodeExecuter;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.core.oe.student.api.ExamRecordDataCloudService;
 import cn.com.qmth.examcloud.core.oe.student.api.request.GetExamRecordDataIdsReq;
 import cn.com.qmth.examcloud.core.oe.student.api.request.UpdateExamRecordDataBatchNumReq;
@@ -15,6 +13,8 @@ import cn.com.qmth.examcloud.core.oe.task.service.ExamRecordDataService;
 import cn.com.qmth.examcloud.core.oe.task.service.bean.RecordDataSyncRule;
 import cn.com.qmth.examcloud.support.enums.ExamRecordStatus;
 import cn.com.qmth.examcloud.support.examing.ExamRecordData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
@@ -34,7 +34,7 @@ import java.util.List;
 @Component
 public class DataGainExamExecutor implements NodeExecuter<Long, ExamRecordData, Long, ExamRecordData> {
 
-    private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(DataGainExamExecutor.class);
+    private static final Logger LOG = LoggerFactory.getLogger(DataGainExamExecutor.class);
 
     private final static Integer batchSize = 200;
 
@@ -61,7 +61,7 @@ public class DataGainExamExecutor implements NodeExecuter<Long, ExamRecordData,
         RecordDataSyncRule syncRule = new RecordDataSyncRule(recordDataSyncAllowOrgList, recordDataSyncLimitOrgList);
         LOG.warn(syncRule.toString());
 
-        LOG.info("[DataGainExamExecutor]开始获取数据");
+        LOG.info("开始获取数据");
         Date start = new Date();
         // 获取考试信息id
         Long startId = 0l;
@@ -78,7 +78,7 @@ public class DataGainExamExecutor implements NodeExecuter<Long, ExamRecordData,
             } catch (Exception e) {
                 Date end = new Date();
                 long times = end.getTime() - start.getTime();
-                LOG.error("[DataGainExamExecutor]获取数据库中考试信息出错 startId:" + startId + " 获取数据条数:" + outList.size() + " 耗时:" + times + "ms", e);
+                LOG.error("获取数据库中考试信息出错 startId:" + startId + " 获取数据条数:" + outList.size() + " 耗时:" + times + "ms", e);
                 return;
             }
 
@@ -86,7 +86,7 @@ public class DataGainExamExecutor implements NodeExecuter<Long, ExamRecordData,
             if (ids == null || ids.size() == 0) {
                 Date end = new Date();
                 long times = end.getTime() - start.getTime();
-                LOG.info("[DataGainExamExecutor]获取数据条数:" + outList.size() + " 耗时:" + times + "ms");
+                LOG.info("获取数据条数:" + outList.size() + " 耗时:" + times + "ms");
                 return;
             }
 
@@ -98,7 +98,7 @@ public class DataGainExamExecutor implements NodeExecuter<Long, ExamRecordData,
                 ExamRecordData examRecordData = examRecordDataService.getExamRecordDataCache(id);
 
                 if (examRecordData == null) {
-                    LOG.error("[DataGainExamExecutor]获取Redis中考试信息为空 examRecordDataId:" + id);
+                    LOG.error("获取Redis中考试信息为空 examRecordDataId:" + id);
                     examRecordData = this.queryExamRecordData(id);
 
                     if (examRecordData != null) {
@@ -148,7 +148,7 @@ public class DataGainExamExecutor implements NodeExecuter<Long, ExamRecordData,
             } catch (Exception e) {
                 Date end = new Date();
                 long times = end.getTime() - start.getTime();
-                LOG.error("[DataGainExamExecutor]修改考试记录batchNum出错 startId:" + startId + " 获取数据条数:" + outList.size() + " 耗时:" + times + "ms", e);
+                LOG.error("修改考试记录batchNum出错 startId:" + startId + " 获取数据条数:" + outList.size() + " 耗时:" + times + "ms", e);
                 return;
             }
 
@@ -174,7 +174,7 @@ public class DataGainExamExecutor implements NodeExecuter<Long, ExamRecordData,
             ureq.setId(id);
             examRecordDataCloudService.updateExamRecordStatus(ureq);
         } catch (Exception e) {
-            LOG.error("[DataGainExamExecutor]修改考试记录状态失败 examRecordDataId:" + id, e);
+            LOG.error("修改考试记录状态失败 examRecordDataId:" + id, e);
         }
     }
 

+ 3 - 4
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/HandInExamExecutor.java

@@ -5,8 +5,6 @@ import cn.com.qmth.examcloud.commons.helpers.KeyValuePair;
 import cn.com.qmth.examcloud.commons.helpers.ObjectHolder;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.NodeExecuter;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.core.oe.student.api.ExamRecordDataCloudService;
 import cn.com.qmth.examcloud.core.oe.student.api.request.HandInExamReq;
@@ -22,6 +20,8 @@ import cn.com.qmth.examcloud.support.examing.ExamingSession;
 import cn.com.qmth.examcloud.support.redis.RedisKeyHelper;
 import cn.com.qmth.examcloud.web.helpers.SequenceLockHelper;
 import cn.com.qmth.examcloud.web.redis.RedisClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -49,8 +49,7 @@ public class HandInExamExecutor implements NodeExecuter<Long, ExamRecordData, Lo
     @Autowired
     private ExamRecordDataCloudService examRecordDataCloudService;
 
-    @Autowired
-    private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(HandInExamExecutor.class);
+    private static final Logger LOG = LoggerFactory.getLogger(HandInExamExecutor.class);
 
     /**
      * 执行

+ 3 - 3
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/pipeline/SyncExamDataExecutor.java

@@ -4,8 +4,6 @@ import cn.com.qmth.examcloud.commons.helpers.KeyValuePair;
 import cn.com.qmth.examcloud.commons.helpers.ObjectHolder;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.NodeExecuter;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.JsonUtil;
 import cn.com.qmth.examcloud.core.oe.admin.api.ExamScoreNoticeQueueCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.api.SyncExamDataCloudService;
@@ -53,6 +51,8 @@ import cn.com.qmth.examcloud.support.examing.ExamRecordData;
 import cn.com.qmth.examcloud.support.helper.ExamCacheTransferHelper;
 import cn.com.qmth.examcloud.support.helper.FaceBiopsyHelper;
 import cn.com.qmth.examcloud.web.helpers.SequenceLockHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -95,7 +95,7 @@ public class SyncExamDataExecutor implements NodeExecuter<Long, ExamRecordData,
     @Autowired
     private ExamProcessRecordRepo examProcessRecordRepo;
 
-    private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(SyncExamDataExecutor.class);
+    private static final Logger LOG = LoggerFactory.getLogger(SyncExamDataExecutor.class);
 
     /**
      * 执行

+ 8 - 8
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/worker/BaiduFaceLivenessWorker.java

@@ -11,9 +11,9 @@ import cn.com.qmth.examcloud.core.oe.task.service.ExamCaptureService;
 import cn.com.qmth.examcloud.core.oe.task.service.bean.ExamCaptureQueueInfo;
 import cn.com.qmth.examcloud.support.Constants;
 import cn.com.qmth.examcloud.web.support.SpringContextHolder;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.logging.log4j.ThreadContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.concurrent.TimeUnit;
 
@@ -24,15 +24,15 @@ import java.util.concurrent.TimeUnit;
  */
 public class BaiduFaceLivenessWorker implements Worker<ExamCaptureQueueInfo> {
 
-    private final Log captureLog = LogFactory.getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
+    private static final Logger log = LoggerFactory.getLogger(BaiduFaceLivenessWorker.class);
 
     @Override
     public void process(WorkerController controller, ExamCaptureQueueInfo element) {
         ThreadContext.put("TRACE_ID", "Q_" + element.getId());
         ThreadContext.put("CALLER", "BAIDU_WORKER");
         ExamCaptureProcessStatisticController.increaseFaceLivenessDetectCount();
-        if (captureLog.isDebugEnabled()) {
-            captureLog.debug("[BAIDU_FACELIVENESS_WORKER.] 图片处理数量+1,count= "
+        if (log.isDebugEnabled()) {
+            log.debug("[BAIDU_FACELIVENESS_WORKER.] 图片处理数量+1,count= "
                     + ExamCaptureProcessStatisticController.getFaceLivenessDetectCount());
         }
         ExamCaptureService examCaptureService = SpringContextHolder
@@ -54,10 +54,10 @@ public class BaiduFaceLivenessWorker implements Worker<ExamCaptureQueueInfo> {
             if ((e.getCode().equals(Constants.BAIDU_FACELIVENESS_QPS_LIMIT_EXCEEDED_CODE))) {
                 // 如果超过并发次数,则添加异常次数
                 controller.addConcurrencyWarn();
-                captureLog.debug("[BAIDU_FACELIVENESS_WORKER.] 超过并发次数 ");
+                log.debug("[BAIDU_FACELIVENESS_WORKER.] 超过并发次数 ");
             } else {
                 ExamCaptureProcessStatisticController.increaseFaceLivenessDetectCount();
-                captureLog.error("[BAIDU_FACELIVENESS_WORKER.] 自定义异常 " + e.getDesc(), e);
+                log.error("[BAIDU_FACELIVENESS_WORKER.] 自定义异常 " + e.getDesc(), e);
             }
             Util.sleep(TimeUnit.MICROSECONDS, 50);
         } catch (Exception e) {
@@ -71,7 +71,7 @@ public class BaiduFaceLivenessWorker implements Worker<ExamCaptureQueueInfo> {
                 ;
                 Util.sleep(TimeUnit.MILLISECONDS, 500);
             }
-            captureLog.error("[BAIDU_FACELIVENESS_WORKER.] 系统异常 " + e.getMessage(), e);
+            log.error("[BAIDU_FACELIVENESS_WORKER.] 系统异常 " + e.getMessage(), e);
             Util.sleep(TimeUnit.MICROSECONDS, 50);
         } finally {
             ThreadContext.clearAll();

+ 8 - 8
examcloud-core-oe-task-service/src/main/java/cn/com/qmth/examcloud/core/oe/task/service/worker/FacePPCompareWorker.java

@@ -11,9 +11,9 @@ import cn.com.qmth.examcloud.core.oe.task.service.ExamCaptureService;
 import cn.com.qmth.examcloud.core.oe.task.service.bean.ExamCaptureQueueInfo;
 import cn.com.qmth.examcloud.support.Constants;
 import cn.com.qmth.examcloud.web.support.SpringContextHolder;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.logging.log4j.ThreadContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.concurrent.TimeUnit;
 
@@ -24,7 +24,7 @@ import java.util.concurrent.TimeUnit;
  */
 public class FacePPCompareWorker implements Worker<ExamCaptureQueueInfo> {
 
-    private final Log captureLog = LogFactory.getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
+    private static final Logger log = LoggerFactory.getLogger(FacePPCompareWorker.class);
 
     @Override
     public void process(WorkerController controller, ExamCaptureQueueInfo element) {
@@ -33,8 +33,8 @@ public class FacePPCompareWorker implements Worker<ExamCaptureQueueInfo> {
         ThreadContext.put("CALLER", "FACEPP_WORKER");
         // 图片处理数量+1
         ExamCaptureProcessStatisticController.increaseFaceCompareCount();
-        if (captureLog.isDebugEnabled()) {
-            captureLog.debug("[FACEPP_COMPARE_WORKER.] 图片处理数量+1,count= "
+        if (log.isDebugEnabled()) {
+            log.debug("[FACEPP_COMPARE_WORKER.] 图片处理数量+1,count= "
                     + ExamCaptureProcessStatisticController.getFaceCompareCount());
         }
         ExamCaptureService examCaptureService = SpringContextHolder
@@ -57,10 +57,10 @@ public class FacePPCompareWorker implements Worker<ExamCaptureQueueInfo> {
             if ((e.getCode().equals(Constants.FACE_COMPARE_CONCURRENCY_LIMIT_EXCEEDED))) {
                 // 如果超过并发次数,则添加异常次数
                 controller.addConcurrencyWarn();
-                captureLog.debug("[FACEPP_COMPARE_WORKER.] 超过并发次数 ");
+                log.debug("[FACEPP_COMPARE_WORKER.] 超过并发次数 ");
             } else {
                 ExamCaptureProcessStatisticController.increaseFaceCompareFailedCount();
-                captureLog.error("[FACEPP_COMPARE_WORKER.] 自定义异常 " +
+                log.error("[FACEPP_COMPARE_WORKER.] 自定义异常 " +
                         ",failedCount=" + ExamCaptureProcessStatisticController.getFaceCompareFailedCount(), e);
             }
 
@@ -76,7 +76,7 @@ public class FacePPCompareWorker implements Worker<ExamCaptureQueueInfo> {
                 }
                 Util.sleep(TimeUnit.MILLISECONDS, 500);
             }
-            captureLog.error("[FACEPP_COMPARE_WORKER.] 系统异常 " +
+            log.error("[FACEPP_COMPARE_WORKER.] 系统异常 " +
                     ",failedCount=" + ExamCaptureProcessStatisticController.getFaceCompareFailedCount(), e);
             Util.sleep(TimeUnit.MICROSECONDS, 50);
         } finally {

+ 65 - 59
examcloud-core-oe-task-starter/pom.xml

@@ -1,66 +1,72 @@
 <?xml version="1.0"?>
 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>cn.com.qmth.examcloud</groupId>
-		<artifactId>examcloud-core-oe-task</artifactId>
-		<version>v4.0.2-RELEASE</version>
-	</parent>
-	<artifactId>examcloud-core-oe-task-starter</artifactId>
+         xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>examcloud-core-oe-task-starter</artifactId>
+    <packaging>jar</packaging>
 
+    <parent>
+        <groupId>cn.com.qmth.examcloud</groupId>
+        <artifactId>examcloud-core-oe-task</artifactId>
+        <version>${revision}</version>
+    </parent>
 
-	<dependencies>
-		<dependency>
-			<groupId>cn.com.qmth.examcloud</groupId>
-			<artifactId>examcloud-core-oe-task-api-provider</artifactId>
-			<version>${examcloud.version}</version>
-		</dependency>
-	</dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>cn.com.qmth.examcloud</groupId>
+            <artifactId>examcloud-core-oe-task-api-provider</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
 
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-jar-plugin</artifactId>
-				<configuration>
-					<archive>
-						<manifest>
-							<mainClass>cn.com.qmth.examcloud.core.oe.task.starter.OETaskApp</mainClass>
-							<addClasspath>true</addClasspath>
-							<classpathPrefix>./</classpathPrefix>
-						</manifest>
-						<manifestEntries>
-							<Class-Path>../config/</Class-Path>
-						</manifestEntries>
-					</archive>
-					<excludes>
-						<exclude>*.properties</exclude>
-						<exclude>*.xml</exclude>
-						<exclude>classpath.location</exclude>
-					</excludes>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-assembly-plugin</artifactId>
-				<configuration>
-					<finalName>examcloud-core-oe-task</finalName>
-					<descriptors>
-						<descriptor>assembly.xml</descriptor>
-					</descriptors>
-				</configuration>
-				<executions>
-					<execution>
-						<id>make-assembly</id>
-						<phase>install</phase>
-						<goals>
-							<goal>assembly</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>cn.com.qmth.examcloud.core.oe.task.starter.OETaskApp</mainClass>
+                            <addClasspath>true</addClasspath>
+                            <classpathPrefix>./</classpathPrefix>
+                        </manifest>
+                        <manifestEntries>
+                            <Class-Path>../config/</Class-Path>
+                        </manifestEntries>
+                    </archive>
+                    <excludes>
+                        <exclude>*.properties</exclude>
+                        <exclude>*.xml</exclude>
+                        <exclude>classpath.location</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <finalName>examcloud-core-oe-task</finalName>
+                    <descriptors>
+                        <descriptor>assembly.xml</descriptor>
+                    </descriptors>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <phase>install</phase>
+                        <goals>
+                            <goal>assembly</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>

+ 1 - 1
examcloud-core-oe-task-starter/shell/start.args

@@ -1 +1 @@
---spring.profiles.active=dev --examcloud.startup.configCenterHost=192.168.10.39
+--spring.profiles.active=dev --sys.config.center.address=192.168.10.39:8888 --examcloud.face.compare.task.enable=true --examcloud.record.data.sync.enable=true

+ 8 - 25
examcloud-core-oe-task-starter/shell/start.sh

@@ -1,36 +1,19 @@
 #!/bin/bash
 
-APP_MAIN_JAR="examcloud-core-oe-task-starter-v4.0.2-RELEASE.jar"
+PROJECT_JAR="examcloud-core-oe-task-starter-v4.1.0-SNAPSHOT.jar"
 
-FILE_PATH=$(cd `dirname $0`; pwd)
+PROJECT_JVM_ARGS=`cat start.vmoptions`
 
-JAVA_OPTS=`cat $FILE_PATH/start.vmoptions`
-APP_ARGS=`cat $FILE_PATH/start.args`
+PROJECT_ARGS=`cat start.args`
 
-PID_LIST=`ps -ef|grep $APP_MAIN_JAR|grep java|awk '{print $2}'`
+PROJECT_ARGS=$PROJECT_ARGS" --sys.config.center.secretKey="$1
 
+PID_LIST=`ps -ef | grep $PROJECT_JAR | grep java | awk '{print $2}'`
 if [ ! -z "$PID_LIST" ]; then
-    echo "[ERROR] : APP is already running!"
-#    exit -1
-fi
-
-if [ "$1" ];then
-    echo "startupCode:"$1;
-else
-    echo "[ERROR] : no arguments"
+    echo "$PROJECT_JAR is already running..."
     exit -1
 fi
 
-APP_ARGS=$APP_ARGS" --examcloud.startup.startupCode="$1
-
-echo "java options:"
-echo "$JAVA_OPTS"
-echo "args:"
-echo "$APP_ARGS"
-    
-nohup java $JAVA_OPTS -jar $FILE_PATH/lib/$APP_MAIN_JAR $APP_ARGS >/dev/null 2>&1 &
-
-echo "starting......"
-
-exit 0
+nohup java $PROJECT_JVM_ARGS -jar lib/$PROJECT_JAR $PROJECT_ARGS >/dev/null 2>&1 &
 
+echo "$PROJECT_JAR start..."

+ 4 - 14
examcloud-core-oe-task-starter/shell/stop.sh

@@ -1,18 +1,8 @@
 #!/bin/bash
 
-APP_MAIN_JAR="examcloud-core-oe-task-starter-v4.0.2-RELEASE.jar"
+PROJECT_JAR="examcloud-core-oe-task-starter-v4.1.0-SNAPSHOT.jar"
 
-FILE_PATH=$(cd `dirname $0`; pwd)
+ps -ef | grep $PROJECT_JAR | grep java | awk '{printf("kill -15 %s\n",$2)}' | sh
+BUILD_ID=DONTKILLME
 
-PID_LIST=`ps -ef|grep $APP_MAIN_JAR|grep java|awk '{print $2}'`
-
-if [ ! -z "$PID_LIST" ]; then
-    echo "Runnable jar is $APP_MAIN_JAR."
-    for PID in $PID_LIST 
-    do
-        kill -9 $PID
-    done
-    echo "stopped !"
-fi
-
-exit 0
+echo "$PROJECT_JAR stop..."

+ 7 - 14
examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/OETaskApp.java

@@ -2,10 +2,8 @@ package cn.com.qmth.examcloud.core.oe.task.starter;
 
 import cn.com.qmth.examcloud.core.oe.task.base.UniqueRuleHolder;
 import cn.com.qmth.examcloud.support.filestorage.FileStorageUtil;
-import cn.com.qmth.examcloud.web.bootstrap.AppBootstrap;
 import cn.com.qmth.examcloud.web.jpa.DataIntegrityViolationTransverter;
-import cn.com.qmth.examcloud.web.support.SpringContextHolder;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration;
@@ -20,9 +18,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 import org.springframework.web.multipart.MultipartResolver;
 import org.springframework.web.multipart.commons.CommonsMultipartResolver;
 
-@SpringBootApplication
 @Configuration
-@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
+@SpringBootApplication(exclude = {MultipartAutoConfiguration.class})
 @EnableJpaAuditing
 @EnableTransactionManagement
 @EnableEurekaClient
@@ -33,11 +30,11 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver;
 public class OETaskApp {
 
     static {
-        String runtimeLevel = System.getProperty("log.commonLevel");
-        if (null == runtimeLevel) {
+        if (System.getProperty("log.commonLevel") == null) {
             System.setProperty("log.commonLevel", "INFO");
         }
         System.setProperty("hibernate.dialect.storage_engine", "innodb");
+
         DataIntegrityViolationTransverter.setUniqueRules(UniqueRuleHolder.getUniqueRuleList());
     }
 
@@ -48,14 +45,10 @@ public class OETaskApp {
      * @throws Exception
      */
     public static void main(String[] args) throws Exception {
-        AppBootstrap.run(OETaskApp.class, args);
-        FileStorageUtil.initYunClient();
-        test();
-    }
+        // AppBootstrap.run(OETaskApp.class, args);
+        SpringApplication.run(OETaskApp.class, args);
 
-    private static void test() {
-        Tester tester = SpringContextHolder.getBean(Tester.class);
-        tester.test();
+        FileStorageUtil.initYunClient();
     }
 
     @Bean(name = "multipartResolver")

+ 4 - 5
examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ExamCloudResourceManager.java

@@ -3,8 +3,6 @@ package cn.com.qmth.examcloud.core.oe.task.starter.config;
 import cn.com.qmth.examcloud.api.commons.enums.DataRuleType;
 import cn.com.qmth.examcloud.api.commons.security.bean.*;
 import cn.com.qmth.examcloud.api.commons.security.enums.RoleMeta;
-import cn.com.qmth.examcloud.commons.util.PathUtil;
-import cn.com.qmth.examcloud.commons.util.PropertiesUtil;
 import cn.com.qmth.examcloud.commons.util.RegExpUtil;
 import cn.com.qmth.examcloud.core.basic.api.UserDataRuleCloudService;
 import cn.com.qmth.examcloud.core.basic.api.request.QueryUserDataRuleReq;
@@ -13,6 +11,7 @@ import cn.com.qmth.examcloud.support.cache.CacheHelper;
 import cn.com.qmth.examcloud.support.cache.bean.AppCacheBean;
 import cn.com.qmth.examcloud.web.redis.RedisClient;
 import cn.com.qmth.examcloud.web.security.ResourceManager;
+import cn.com.qmth.examcloud.web.security.SecurityProperty;
 import cn.com.qmth.examcloud.web.support.ApiInfo;
 import com.google.common.collect.Sets;
 import org.apache.commons.collections4.CollectionUtils;
@@ -40,7 +39,7 @@ public class ExamCloudResourceManager implements ResourceManager {
     UserDataRuleCloudService userDataRuleCloudService;
 
     static {
-        PropertiesUtil.loadFromPath(PathUtil.getResoucePath("security.properties"));
+        SecurityProperty.loadProperties("security.properties");
     }
 
     @Override
@@ -93,8 +92,8 @@ public class ExamCloudResourceManager implements ResourceManager {
         }
 
         // 权限组集合
-        String privilegeGroups = PropertiesUtil.getString(mapping);
-        if (StringUtils.isBlank(privilegeGroups)) {
+        String privilegeGroups = SecurityProperty.getProperty(mapping);
+        if (StringUtils.isEmpty(privilegeGroups)) {
             return true;
         }
 

+ 10 - 11
examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ProcessBaiduFaceLivenessAlarmTask.java

@@ -1,8 +1,6 @@
 package cn.com.qmth.examcloud.core.oe.task.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.task.base.ExamCaptureProcessStatisticController;
 import cn.com.qmth.examcloud.exchange.inner.api.SmsCloudService;
@@ -11,6 +9,8 @@ import cn.com.qmth.examcloud.support.cache.CacheHelper;
 import cn.com.qmth.examcloud.support.cache.bean.SysPropertyCacheBean;
 import com.google.common.collect.Maps;
 import com.googlecode.aviator.AviatorEvaluator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.ApplicationArguments;
@@ -33,8 +33,7 @@ import java.util.Map;
 @Order(203)
 public class ProcessBaiduFaceLivenessAlarmTask implements ApplicationRunner {
 
-    private static ExamCloudLog captureLog = ExamCloudLogFactory
-            .getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(ProcessBaiduFaceLivenessAlarmTask.class);
 
     @Autowired
     SmsCloudService smsCloudService;
@@ -44,7 +43,7 @@ public class ProcessBaiduFaceLivenessAlarmTask implements ApplicationRunner {
 
     @Override
     public void run(ApplicationArguments args) throws Exception {
-        captureLog.warn("ProcessBaiduFaceLivenessAlarmTask enable is " + faceCompareTaskEnable);
+        LOG.warn("ProcessBaiduFaceLivenessAlarmTask enable is " + faceCompareTaskEnable);
         if (!faceCompareTaskEnable) {
             return;
         }
@@ -57,7 +56,7 @@ public class ProcessBaiduFaceLivenessAlarmTask implements ApplicationRunner {
                     try {
                         faceLivenessDectectAlarm();
                     } catch (Exception e) {
-                        captureLog.error("[FACE_LIVENESS_ALARM.] 活体检测预警出现异常", e);
+                        LOG.error("[FACE_LIVENESS_ALARM.] 活体检测预警出现异常", e);
                     }
 
                     // 每分钟轮循一次
@@ -74,8 +73,8 @@ public class ProcessBaiduFaceLivenessAlarmTask implements ApplicationRunner {
      * 活体检测,如果有必要则发短信
      */
     private void faceLivenessDectectAlarm() {
-        if (captureLog.isDebugEnabled()) {
-            captureLog.debug("[FACE_LIVENESS_ALARM] 进入活体检测" + System.currentTimeMillis()
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("[FACE_LIVENESS_ALARM] 进入活体检测" + System.currentTimeMillis()
                     + "....totalCount="
                     + ExamCaptureProcessStatisticController.getFaceLivenessDetectCount()
                     + " ,failCount="
@@ -87,7 +86,7 @@ public class ProcessBaiduFaceLivenessAlarmTask implements ApplicationRunner {
             SysPropertyCacheBean faceLivenessSmsAssemblyCodeProperty = CacheHelper
                     .getSysProperty("capture.faceLiveness.smsAssemblyCode");
             if (!faceLivenessSmsAssemblyCodeProperty.getHasValue()) {
-                captureLog.error("[FACE_LIVENESS_ALARM.] 未配置人脸比对的短信模板代码,totalCount="
+                LOG.error("[FACE_LIVENESS_ALARM.] 未配置人脸比对的短信模板代码,totalCount="
                         + ExamCaptureProcessStatisticController.getFaceCompareCount()
                         + ",errorCount="
                         + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
@@ -96,7 +95,7 @@ public class ProcessBaiduFaceLivenessAlarmTask implements ApplicationRunner {
             SysPropertyCacheBean smsPhoneProperty = CacheHelper
                     .getSysProperty("capture.sms.phones");
             if (!smsPhoneProperty.getHasValue()) {
-                captureLog.error("[FACE_LIVENESS_ALARM.] 未配置图片处理失败的通知手机号,totalCount="
+                LOG.error("[FACE_LIVENESS_ALARM.] 未配置图片处理失败的通知手机号,totalCount="
                         + ExamCaptureProcessStatisticController.getFaceCompareCount()
                         + ",errorCount="
                         + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
@@ -119,7 +118,7 @@ public class ProcessBaiduFaceLivenessAlarmTask implements ApplicationRunner {
             try {
                 smsCloudService.sendSms(sendSmsReq);
             } catch (Exception e) {
-                captureLog.error("[PROCESS_FACE_LIVENESS.] 发送短信出现异常", e);
+                LOG.error("[PROCESS_FACE_LIVENESS.] 发送短信出现异常", e);
             }
         }
         // 每1分钟重置一次总数量与失败数量

+ 10 - 11
examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ProcessBaiduFacelivenessTask.java

@@ -1,8 +1,6 @@
 package cn.com.qmth.examcloud.core.oe.task.starter.config;
 
 import cn.com.qmth.examcloud.commons.helpers.concurrency.simple.ConcurrentTask;
-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.task.dao.ExamCaptureQueueRepo;
 import cn.com.qmth.examcloud.core.oe.task.dao.entity.ExamCaptureQueueEntity;
@@ -10,6 +8,8 @@ import cn.com.qmth.examcloud.core.oe.task.service.bean.ExamCaptureQueueInfo;
 import cn.com.qmth.examcloud.core.oe.task.service.worker.BaiduFaceLivenessWorker;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import org.apache.logging.log4j.ThreadContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.ApplicationArguments;
@@ -26,8 +26,7 @@ import java.util.List;
 @Order(201)
 public class ProcessBaiduFacelivenessTask implements ApplicationRunner {
 
-    private static ExamCloudLog captureLog = ExamCloudLogFactory
-            .getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(ProcessBaiduFacelivenessTask.class);
 
     @Autowired
     ExamCaptureQueueRepo examCaptureQueueRepo;
@@ -43,12 +42,12 @@ public class ProcessBaiduFacelivenessTask implements ApplicationRunner {
                 .findNeedFacelivenessDetectExamCaptureQueuesLimit(limit, processBatchNum);
 
         if (null == examCaptureQueueList || examCaptureQueueList.isEmpty()) {
-            captureLog
+            LOG
                     .debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum + "] 抓拍队列中没有取到数据,2秒后重试");
             return 0;
         }
 
-        captureLog.debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum + "] 抓拍队列中的数据条数为:"
+        LOG.debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum + "] 抓拍队列中的数据条数为:"
                 + examCaptureQueueList.size());
 
         for (ExamCaptureQueueEntity offeredQueueEntity : examCaptureQueueList) {
@@ -60,12 +59,12 @@ public class ProcessBaiduFacelivenessTask implements ApplicationRunner {
                     examCaptureQueueRepo.updateProcessBatchNum(offeredQueueEntity.getId(), processBatchNum);
                     boolean offerSuccess = concurrentTask.offerElement(copyExamCaptureQueueInfoFrom(offeredQueueEntity));
                     if (offerSuccess) {
-                        captureLog.debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum
+                        LOG.debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum
                                 + "] 向工作队列中添加数据成功:fileUrl=" + offeredQueueEntity.getFileUrl());
                         break;
                     }
 
-                    captureLog.debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum
+                    LOG.debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum
                             + "] 向工作队列中添加数据失败,30秒后重试:fileUrl=" + offeredQueueEntity.getFileUrl());
 
                     Util.sleep(PropertyHolder.getInt("$capture.queue.offer.sleepSeconds.", 30));
@@ -80,7 +79,7 @@ public class ProcessBaiduFacelivenessTask implements ApplicationRunner {
 
     @Override
     public void run(ApplicationArguments args) {
-        captureLog.warn("ProcessBaiduFacelivenessTask enable is " + faceCompareTaskEnable);
+        LOG.warn("ProcessBaiduFacelivenessTask enable is " + faceCompareTaskEnable);
         if (!faceCompareTaskEnable) {
             return;
         }
@@ -95,7 +94,7 @@ public class ProcessBaiduFacelivenessTask implements ApplicationRunner {
         // 当前获取数据的批次号(默认用时间戳)
         String processBatchNum = "B_" + System.currentTimeMillis();
 
-        captureLog.debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum + "] 启动百度处理服务...");
+        LOG.debug("[PROCESS_BAIDUFACELIVENESS." + processBatchNum + "] 启动百度处理服务...");
 
         Thread thread = new Thread(new Runnable() {
             @Override
@@ -111,7 +110,7 @@ public class ProcessBaiduFacelivenessTask implements ApplicationRunner {
                         }
                         Util.sleep(PropertyHolder.getInt("$capture.queue.read.sleepSeconds.", 2));
                     } catch (Exception e) {
-                        captureLog.error("[PROCESS_FACEPP." + processBatchNum + "] 百度活体检测出异常,3秒后重试",
+                        LOG.error("[PROCESS_FACEPP." + processBatchNum + "] 百度活体检测出异常,3秒后重试",
                                 e);
                         Util.sleep(3);
                     }

+ 13 - 14
examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ProcessFaceCompareAlarmTask.java

@@ -1,8 +1,6 @@
 package cn.com.qmth.examcloud.core.oe.task.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.task.base.ExamCaptureProcessStatisticController;
 import cn.com.qmth.examcloud.exchange.inner.api.SmsCloudService;
@@ -11,6 +9,8 @@ import cn.com.qmth.examcloud.support.cache.CacheHelper;
 import cn.com.qmth.examcloud.support.cache.bean.SysPropertyCacheBean;
 import com.google.common.collect.Maps;
 import com.googlecode.aviator.AviatorEvaluator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.ApplicationArguments;
@@ -39,12 +39,11 @@ public class ProcessFaceCompareAlarmTask implements ApplicationRunner {
     @Value("${examcloud.face.compare.task.enable}")
     private Boolean faceCompareTaskEnable;
 
-    private final ExamCloudLog captureLog = ExamCloudLogFactory
-            .getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(ProcessFaceCompareAlarmTask.class);
 
     @Override
     public void run(ApplicationArguments args) throws Exception {
-        captureLog.warn("ProcessFaceCompareAlarmTask enable is " + faceCompareTaskEnable);
+        LOG.warn("ProcessFaceCompareAlarmTask enable is " + faceCompareTaskEnable);
         if (!faceCompareTaskEnable) {
             return;
         }
@@ -58,7 +57,7 @@ public class ProcessFaceCompareAlarmTask implements ApplicationRunner {
                         faceCompareAlarm();
 
                     } catch (Exception e) {
-                        captureLog.error("[FACE_COMPARE_ALARM.] 人脸比对预警出现异常 ", e);
+                        LOG.error("[FACE_COMPARE_ALARM.] 人脸比对预警出现异常 ", e);
                     }
                     // 每分钟轮循一次
                     Util.sleep(60);
@@ -74,8 +73,8 @@ public class ProcessFaceCompareAlarmTask implements ApplicationRunner {
      * 人脸比对,如果有必要则发短信
      */
     private void faceCompareAlarm() {
-        if (captureLog.isDebugEnabled()) {
-            captureLog.debug("[FACE_COMPARE_ALARM] 进入人脸" + System.currentTimeMillis()
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("[FACE_COMPARE_ALARM] 进入人脸" + System.currentTimeMillis()
                     + "....totalCount="
                     + ExamCaptureProcessStatisticController.getFaceCompareCount() + " ,failCount="
                     + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
@@ -87,7 +86,7 @@ public class ProcessFaceCompareAlarmTask implements ApplicationRunner {
                     .getSysProperty("capture.faceCompare.smsAssemblyCode");
 
             if (!faceCompareSmsAssemblyCodeProperty.getHasValue()) {
-                captureLog.error("[FACE_COMPARE_ALARM.] 未配置人脸比对的短信模板代码,totalCount="
+                LOG.error("[FACE_COMPARE_ALARM.] 未配置人脸比对的短信模板代码,totalCount="
                         + ExamCaptureProcessStatisticController.getFaceCompareCount()
                         + ",errorCount="
                         + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
@@ -96,8 +95,8 @@ public class ProcessFaceCompareAlarmTask implements ApplicationRunner {
             SysPropertyCacheBean smsPhoneProperty = CacheHelper
                     .getSysProperty("capture.sms.phones");
             if (!smsPhoneProperty.getHasValue()) {
-                if (captureLog.isErrorEnabled()) {
-                    captureLog.error("[FACE_COMPARE_ALARM.] 未配置图片处理失败的通知手机号,totalCount="
+                if (LOG.isErrorEnabled()) {
+                    LOG.error("[FACE_COMPARE_ALARM.] 未配置图片处理失败的通知手机号,totalCount="
                             + ExamCaptureProcessStatisticController.getFaceCompareCount()
                             + ",errorCount="
                             + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
@@ -121,15 +120,15 @@ public class ProcessFaceCompareAlarmTask implements ApplicationRunner {
                     .valueOf(ExamCaptureProcessStatisticController.getFaceCompareFailedCount()));
             sendSmsReq.setParams(params);
             try {
-                if (captureLog.isDebugEnabled()) {
-                    captureLog.debug("[FACE_COMPARE_ALARM.] 开始调用发送短信接口,totalCount="
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug("[FACE_COMPARE_ALARM.] 开始调用发送短信接口,totalCount="
                             + ExamCaptureProcessStatisticController.getFaceCompareCount()
                             + ",errorCount="
                             + ExamCaptureProcessStatisticController.getFaceCompareFailedCount());
                 }
                 smsCloudService.sendSms(sendSmsReq);
             } catch (Exception e) {
-                captureLog.error("[FACE_COMPARE_ALARM.] 发送短信出现异常", e);
+                LOG.error("[FACE_COMPARE_ALARM.] 发送短信出现异常", e);
             }
         }
         // 每1分钟重置一次总数量与失败数量

+ 10 - 11
examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/ProcessFaceCompareQueueTask.java

@@ -1,8 +1,6 @@
 package cn.com.qmth.examcloud.core.oe.task.starter.config;
 
 import cn.com.qmth.examcloud.commons.helpers.concurrency.simple.ConcurrentTask;
-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.task.dao.ExamCaptureQueueRepo;
 import cn.com.qmth.examcloud.core.oe.task.dao.entity.ExamCaptureQueueEntity;
@@ -11,6 +9,8 @@ import cn.com.qmth.examcloud.core.oe.task.service.worker.FacePPCompareWorker;
 import cn.com.qmth.examcloud.exchange.inner.api.SmsCloudService;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import org.apache.logging.log4j.ThreadContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.ApplicationArguments;
@@ -27,8 +27,7 @@ import java.util.List;
 @Order(200)
 public class ProcessFaceCompareQueueTask implements ApplicationRunner {
 
-    private final ExamCloudLog captureLog = ExamCloudLogFactory
-            .getLog("PROCESS_EXAM_CAPTURE_TASK_LOGGER");
+    private static final Logger LOG = LoggerFactory.getLogger(ProcessFaceCompareQueueTask.class);
 
     @Autowired
     ExamCaptureQueueRepo examCaptureQueueRepo;
@@ -46,11 +45,11 @@ public class ProcessFaceCompareQueueTask implements ApplicationRunner {
                 .findNeedFaceCompareExamCaptureQueuesLimitByProcessBatchNum(limit, processBatchNum);
 
         if (null == examCaptureQueueList || examCaptureQueueList.isEmpty()) {
-            captureLog.debug("[PROCESS_FACEPP." + processBatchNum + "] 抓拍队列中没有取到数据,2秒后重试");
+            LOG.debug("[PROCESS_FACEPP." + processBatchNum + "] 抓拍队列中没有取到数据,2秒后重试");
             return 0;
         }
 
-        captureLog.debug("[PROCESS_FACEPP." + processBatchNum + "] 抓拍队列中的数据条数为:"
+        LOG.debug("[PROCESS_FACEPP." + processBatchNum + "] 抓拍队列中的数据条数为:"
                 + examCaptureQueueList.size());
 
         for (ExamCaptureQueueEntity offeredQueueEntity : examCaptureQueueList) {
@@ -63,12 +62,12 @@ public class ProcessFaceCompareQueueTask implements ApplicationRunner {
                     boolean offerSuccess = concurrentTask.offerElement(copyExamCaptureQueueInfoFrom(offeredQueueEntity));
                     // 如果向队列中添加数据成功,则更新标识
                     if (offerSuccess) {
-                        captureLog.debug("[PROCESS_FACEPP." + processBatchNum
+                        LOG.debug("[PROCESS_FACEPP." + processBatchNum
                                 + "] 向工作队列中添加数据成功:fileUrl=" + offeredQueueEntity.getFileUrl());
                         break;
                     }
 
-                    captureLog.debug("[PROCESS_FACEPP." + processBatchNum
+                    LOG.debug("[PROCESS_FACEPP." + processBatchNum
                             + "] 向工作队列中添加数据失败,30秒后重试:fileUrl=" + offeredQueueEntity.getFileUrl());
 
                     Util.sleep(PropertyHolder.getInt("$capture.queue.offer.sleepSeconds.", 30));
@@ -83,7 +82,7 @@ public class ProcessFaceCompareQueueTask implements ApplicationRunner {
 
     @Override
     public void run(ApplicationArguments args) {
-        captureLog.warn("ProcessFaceCompareQueueTask enable is " + faceCompareTaskEnable);
+        LOG.warn("ProcessFaceCompareQueueTask enable is " + faceCompareTaskEnable);
         if (!faceCompareTaskEnable) {
             return;
         }
@@ -97,7 +96,7 @@ public class ProcessFaceCompareQueueTask implements ApplicationRunner {
         // 当前获取数据的批次号(默认用时间戳)
         String processBatchNum = "A_" + System.currentTimeMillis();
 
-        captureLog.debug("[PROCESS_FACEPP." + processBatchNum + "] 启动face++人脸比对服务...");
+        LOG.debug("[PROCESS_FACEPP." + processBatchNum + "] 启动face++人脸比对服务...");
 
         Thread thread = new Thread(new Runnable() {
             @Override
@@ -113,7 +112,7 @@ public class ProcessFaceCompareQueueTask implements ApplicationRunner {
                         }
                         Util.sleep(PropertyHolder.getInt("$capture.queue.read.sleepSeconds.", 2));
                     } catch (Exception e) {
-                        captureLog.error("[PROCESS_FACEPP." + processBatchNum + "] 百度活体检测出异常,3秒后重试",
+                        LOG.error("[PROCESS_FACEPP." + processBatchNum + "] 百度活体检测出异常,3秒后重试",
                                 e);
                         Util.sleep(3);
                     }

+ 3 - 3
examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/StreamTaskExecutor.java

@@ -3,11 +3,11 @@ package cn.com.qmth.examcloud.core.oe.task.starter.config;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.Node;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.SimpleNode;
 import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.core.oe.task.service.pipeline.*;
 import cn.com.qmth.examcloud.support.examing.ExamRecordData;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.ApplicationArguments;
@@ -25,7 +25,7 @@ import org.springframework.stereotype.Component;
 @Order(300)
 public class StreamTaskExecutor implements ApplicationRunner {
 
-    private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(StreamTaskExecutor.class);
+    private static final Logger LOG = LoggerFactory.getLogger(StreamTaskExecutor.class);
 
     @Autowired
     private DataGainExamExecutor dataGainExamExecutor;

+ 2 - 2
examcloud-core-oe-task-starter/src/main/java/cn/com/qmth/examcloud/core/oe/task/starter/config/SwaggerConfig.java

@@ -16,10 +16,10 @@ import springfox.documentation.builders.RequestHandlerSelectors;
 import springfox.documentation.service.ApiInfo;
 import springfox.documentation.spi.DocumentationType;
 import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
 
 @Configuration
-@EnableSwagger2
+@EnableSwagger2WebMvc
 public class SwaggerConfig {
 
     @Bean

+ 5 - 10
examcloud-core-oe-task-starter/src/main/resources/application.properties

@@ -1,11 +1,6 @@
 spring.profiles.active=dev
-
-examcloud.startup.startupCode=3000
-examcloud.startup.configCenterHost=192.168.10.39
-examcloud.startup.configCenterPort=9999
-examcloud.startup.appCode=OET
-
-examcloud.face.compare.task.enable=false
-examcloud.record.data.sync.enable=false
-examcloud.record.data.sync.allowOrgList=
-examcloud.record.data.sync.limitOrgList=
+sys.config.center.enabled=true
+sys.config.center.address=192.168.10.39:8888
+sys.config.center.namespace=examcloud
+sys.config.center.appCode=OET
+sys.config.center.secretKey=

+ 0 - 1
examcloud-core-oe-task-starter/src/main/resources/classpath.location

@@ -1 +0,0 @@
-classpath 定位文件

+ 33 - 133
examcloud-core-oe-task-starter/src/main/resources/log4j2.xml

@@ -2,99 +2,32 @@
 <Configuration status="WARN" monitorInterval="30">
 
     <Properties>
-        <Property name="commonLevel" value="${sys:log.commonLevel}"/>
-        <Property name="logPattern">
+        <Property name="LOG_LEVEL" value="${sys:log.commonLevel}"/>
+        <Property name="LOG_DIR" value="../logs/examcloud-core-oe-task"/>
+        <Property name="LOG_PATTERN">
             %d{yyyy-MM-dd HH:mm:ss.SSS} | %clr{%level} | %X{TRACE_ID} %X{CALLER} | %clr{%c{1.1}:%L}{cyan} | %m%n
         </Property>
     </Properties>
 
     <Appenders>
-        <!-- 控制台 日志 -->
-        <Console name="Console" target="SYSTEM_OUT">
-            <PatternLayout pattern="${logPattern}" charset="UTF-8"/>
+        <Console name="CONSOLE_APPENDER" target="SYSTEM_OUT">
+            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
         </Console>
 
-        <!-- debug 日志 -->
-        <RollingFile name="DEBUG_APPENDER"
-                     fileName="./logs/debug/debug.log"
-                     filePattern="./logs/debug/debug-%d{yyyy.MM.dd.HH}-%i.log">
-            <PatternLayout pattern="${logPattern}" charset="UTF-8"/>
-            <Policies>
-                <TimeBasedTriggeringPolicy interval="1" modulate="false"/>
-                <SizeBasedTriggeringPolicy size="100 MB"/>
-            </Policies>
-            <DefaultRolloverStrategy max="1000">
-                <Delete basePath="./logs/debug" maxDepth="1">
-                    <IfFileName glob="debug-*.log">
-                        <IfAccumulatedFileSize exceeds="2 GB"/>
-                    </IfFileName>
-                </Delete>
-            </DefaultRolloverStrategy>
-        </RollingFile>
+        <RollingFile name="FILE_APPENDER"
+                     fileName="${LOG_DIR}/debug.log"
+                     filePattern="${LOG_DIR}/debug-%d{yyyyMMdd}-%i.log">
+            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
 
-        <!-- 接口日志 -->
-        <RollingFile name="INTERFACE_APPENDER" fileName="./logs/interface/interface.log"
-                     filePattern="./logs/interface/interface-%d{yyyy.MM.dd.HH}-%i.log">
-            <PatternLayout pattern="${logPattern}" charset="UTF-8"/>
             <Policies>
                 <TimeBasedTriggeringPolicy interval="1" modulate="false"/>
                 <SizeBasedTriggeringPolicy size="100 MB"/>
             </Policies>
-            <DefaultRolloverStrategy max="1000">
-                <Delete basePath="./logs/interface" maxDepth="1">
-                    <IfFileName glob="interface-*.log">
-                        <IfAccumulatedFileSize exceeds="10 GB"/>
-                    </IfFileName>
-                </Delete>
-            </DefaultRolloverStrategy>
-        </RollingFile>
-
-        <!-- 处理照片日志 -->
-        <RollingFile name="PROCESS_EXAM_CAPTURE_TASK_APPENDER" fileName="./logs/capture/capture.log"
-                     filePattern="./logs/capture/capture-%d{yyyy.MM.dd.HH}-%i.log">
-            <PatternLayout pattern="${logPattern}" charset="UTF-8"/>
-            <Policies>
-                <TimeBasedTriggeringPolicy interval="1" modulate="false"/>
-                <SizeBasedTriggeringPolicy size="100MB"/>
-            </Policies>
-            <DefaultRolloverStrategy max="1000">
-                <Delete basePath="./logs/capture" maxDepth="1">
-                    <IfFileName glob="capture-*.log">
-                        <IfAccumulatedFileSize exceeds="2 GB"/>
-                    </IfFileName>
-                </Delete>
-            </DefaultRolloverStrategy>
-        </RollingFile>
-
-        <!-- 流式自动服务综合日志 -->
-        <RollingFile name="ROOT_STREAM_TASK_APPENDER" fileName="./logs/stream/root-stream.log"
-                     filePattern="./logs/stream/root-stream-%d{yyyy.MM.dd.HH}-%i.log">
-            <PatternLayout pattern="${logPattern}" charset="UTF-8"/>
-            <Policies>
-                <TimeBasedTriggeringPolicy interval="1" modulate="false"/>
-                <SizeBasedTriggeringPolicy size="100MB"/>
-            </Policies>
-            <DefaultRolloverStrategy max="1000">
-                <Delete basePath="./logs/stream" maxDepth="1">
-                    <IfFileName glob="root-stream-*.log">
-                        <IfAccumulatedFileSize exceeds="2 GB"/>
-                    </IfFileName>
-                </Delete>
-            </DefaultRolloverStrategy>
-        </RollingFile>
 
-        <!-- 流式自动服务详细日志 -->
-        <RollingFile name="NODE_STREAM_TASK_APPENDER" fileName="./logs/stream/node-stream.log"
-                     filePattern="./logs/stream/node-stream-%d{yyyy.MM.dd.HH}-%i.log">
-            <PatternLayout pattern="${logPattern}" charset="UTF-8"/>
-            <Policies>
-                <TimeBasedTriggeringPolicy interval="1" modulate="false"/>
-                <SizeBasedTriggeringPolicy size="100MB"/>
-            </Policies>
             <DefaultRolloverStrategy max="1000">
-                <Delete basePath="./logs/stream" maxDepth="1">
-                    <IfFileName glob="node-stream-*.log">
-                        <IfAccumulatedFileSize exceeds="2 GB"/>
+                <Delete basePath="${LOG_DIR}" maxDepth="1">
+                    <IfFileName glob="debug-*.log">
+                        <IfAccumulatedFileSize exceeds="10 GB"/>
                     </IfFileName>
                 </Delete>
             </DefaultRolloverStrategy>
@@ -102,66 +35,33 @@
     </Appenders>
 
     <Loggers>
-        <logger name="springfox.documentation" level="ERROR"/>
-        <logger name="org.springframework" level="ERROR"/>
-        <logger name="org.hibernate" level="ERROR"/>
-        <logger name="org.apache" level="ERROR"/>
-        <logger name="org.quartz" level="ERROR"/>
-        <logger name="org.docx4j" level="ERROR"/>
-        <logger name="cn.afterturn" level="ERROR"/>
-        <logger name="com.netflix" level="ERROR"/>
-        <logger name="com.aliyun" level="ERROR"/>
-        <logger name="io.lettuce" level="ERROR"/>
-        <logger name="io.netty" level="ERROR"/>
-
+        <logger name="springfox.documentation" level="WARN"/>
+        <logger name="org.springframework" level="WARN"/>
+        <logger name="org.hibernate" level="WARN"/>
+        <logger name="org.apache" level="WARN"/>
+        <logger name="org.quartz" level="WARN"/>
+        <logger name="org.docx4j" level="WARN"/>
+        <logger name="cn.afterturn" level="WARN"/>
+        <logger name="com.netflix" level="WARN"/>
+        <logger name="com.aliyun" level="WARN"/>
+        <logger name="io.lettuce" level="WARN"/>
+        <logger name="io.netty" level="WARN"/>
+
+        <!--<Logger name="org.hibernate.SQL" level="DEBUG"/>-->
+        <!--<Logger name="org.hibernate.engine.transaction" level="DEBUG"/>-->
+        <!--<Logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>-->
         <!--<logger name="org.springframework.jdbc.core.JdbcTemplate" level="DEBUG"/>-->
         <!--<logger name="org.springframework.data.mongodb" level="DEBUG"/>-->
         <!--<logger name="org.springframework.data.redis" level="DEBUG"/>-->
 
-        <Logger name="cn.com.qmth" level="${commonLevel}" additivity="false">
-            <AppenderRef ref="DEBUG_APPENDER"/>
-            <AppenderRef ref="Console"/>
-        </Logger>
-
-        <Logger name="INTERFACE_LOGGER" level="${commonLevel}" additivity="false">
-            <AppenderRef ref="INTERFACE_APPENDER"/>
-            <AppenderRef ref="Console"/>
-        </Logger>
-
-        <Logger name="PROCESS_EXAM_CAPTURE_TASK_LOGGER" level="${commonLevel}" additivity="false">
-            <AppenderRef ref="PROCESS_EXAM_CAPTURE_TASK_APPENDER"/>
-            <AppenderRef ref="Console"/>
-        </Logger>
-
-        <Logger name="cn.com.qmth.examcloud.web.facepp" level="${commonLevel}" additivity="false">
-            <AppenderRef ref="PROCESS_EXAM_CAPTURE_TASK_APPENDER"/>
-            <AppenderRef ref="Console"/>
-        </Logger>
-
-        <Logger name="cn.com.qmth.examcloud.web.baidu" level="${commonLevel}" additivity="false">
-            <AppenderRef ref="PROCESS_EXAM_CAPTURE_TASK_APPENDER"/>
-            <AppenderRef ref="Console"/>
-        </Logger>
-
-        <Logger name="cn.com.qmth.examcloud.commons.helpers.concurrency.simple" level="${commonLevel}"
-                additivity="false">
-            <AppenderRef ref="PROCESS_EXAM_CAPTURE_TASK_APPENDER"/>
-            <AppenderRef ref="Console"/>
-        </Logger>
-
-        <Logger name="cn.com.qmth.examcloud.commons.helpers.pipeline" level="${commonLevel}" additivity="false">
-            <AppenderRef ref="ROOT_STREAM_TASK_APPENDER"/>
-            <AppenderRef ref="Console"/>
-        </Logger>
-
-        <Logger name="cn.com.qmth.examcloud.core.oe.task.service.pipeline" level="${commonLevel}" additivity="false">
-            <AppenderRef ref="NODE_STREAM_TASK_APPENDER"/>
-            <AppenderRef ref="Console"/>
+        <Logger name="cn.com.qmth" level="${LOG_LEVEL}" additivity="false">
+            <AppenderRef ref="CONSOLE_APPENDER"/>
+            <AppenderRef ref="FILE_APPENDER"/>
         </Logger>
 
-        <Root level="${commonLevel}">
-            <AppenderRef ref="Console"/>
-            <AppenderRef ref="DEBUG_APPENDER"/>
+        <Root level="${LOG_LEVEL}">
+            <AppenderRef ref="CONSOLE_APPENDER"/>
+            <AppenderRef ref="FILE_APPENDER"/>
         </Root>
     </Loggers>
 

+ 4 - 0
jenkins-prod.sh → jenkins.sh

@@ -1,4 +1,8 @@
 #!/bin/bash
+
 pwd
+mkdir -p ~/packages
 
 cp examcloud-core-oe-task-starter/target/examcloud-core-oe-task-distribution.zip ~/packages
+
+echo "finished..."

+ 5 - 4
pom.xml

@@ -1,14 +1,15 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
+    <artifactId>examcloud-core-oe-task</artifactId>
+    <packaging>pom</packaging>
+
     <parent>
         <groupId>cn.com.qmth.examcloud</groupId>
         <artifactId>examcloud-parent</artifactId>
-        <version>v4.0.2-RELEASE</version>
+        <version>${revision}</version>
+        <relativePath>../examcloud-parent/pom.xml</relativePath>
     </parent>
-    <artifactId>examcloud-core-oe-task</artifactId>
-    <version>v4.0.2-RELEASE</version>
-    <packaging>pom</packaging>
 
     <modules>
         <module>examcloud-core-oe-task-base</module>