wangliang пре 4 година
родитељ
комит
a7827c15f4

+ 11 - 0
themis-backend/src/main/java/com/qmth/themis/backend/config/DictionaryConfig.java

@@ -69,4 +69,15 @@ public class DictionaryConfig {
     public AliYunOssDomain aliYunOssDomain() {
         return new AliYunOssDomain();
     }
+
+    /**
+     * 阿里云oss配置
+     *
+     * @return
+     */
+    @Bean
+    @ConfigurationProperties(prefix = "mq", ignoreUnknownFields = false)
+    public MqDomain mqDomain() {
+        return new MqDomain();
+    }
 }

+ 25 - 18
themis-backend/src/main/java/com/qmth/themis/backend/start/StartRunning.java

@@ -1,5 +1,6 @@
 package com.qmth.themis.backend.start;
 
+import com.qmth.themis.backend.config.DictionaryConfig;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.mq.enums.MqGroupEnum;
@@ -15,6 +16,8 @@ import org.springframework.boot.CommandLineRunner;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
@@ -30,21 +33,25 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     RocketMessageConsumer rocketMessageConsumer;
 
-    @Value("rocketmq.name-server")
+    @Value("${rocketmq.name-server}")
     String nameServer;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
+        Map<String, String> map = dictionaryConfig.mqDomain().getGroupMap();
         /**
          * session mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWebGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWinGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerMacGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWxappGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerIosGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerAndroidGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWebGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWebGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWinGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWinGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerMacGroup.getCode() : map.get(MqGroupEnum.sessionConsumerMacGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWxappGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWxappGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerIosGroup.getCode() : map.get(MqGroupEnum.sessionConsumerIosGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerAndroidGroup.getCode() : map.get(MqGroupEnum.sessionConsumerAndroidGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
         /**
          * session mq end
          */
@@ -52,8 +59,8 @@ public class StartRunning implements CommandLineRunner {
         /**
          * userLog mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerUserGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerStudentGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerUserGroup.getCode() : map.get(MqGroupEnum.userLogConsumerUserGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerStudentGroup.getCode() : map.get(MqGroupEnum.userLogConsumerStudentGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
         /**
          * userLog mq end
          */
@@ -61,10 +68,10 @@ public class StartRunning implements CommandLineRunner {
         /**
          * task mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamStudentImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamPaperImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamStudentImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamStudentImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeExportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamPaperImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamPaperImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
         /**
          * task mq end
          */
@@ -72,21 +79,21 @@ public class StartRunning implements CommandLineRunner {
         /**
          * websocket mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.websocketConsumerUnNormalGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.websocketConsumerUnNormalGroup.getCode() : map.get(MqGroupEnum.websocketConsumerUnNormalGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
         /**
          * websocket mq end
          */
         //计算客观分
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.calculateObjectiveScoreGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.calculateObjectiveScoreGroup.getCode() : map.get(MqGroupEnum.calculateObjectiveScoreGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
 
         //人脸验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.faceVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.faceVerifySaveGroup.getCode() : map.get(MqGroupEnum.faceVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
 
         //活体验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.livenessVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.livenessVerifySaveGroup.getCode() : map.get(MqGroupEnum.livenessVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
 
         //考试断点记录
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.examBreakHistoryGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.examBreakHistoryGroup.getCode() : map.get(MqGroupEnum.examBreakHistoryGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
         SystemConstant.initTempFiles();
         log.info("服务器启动时执行 end");
     }

+ 24 - 0
themis-business/src/main/java/com/qmth/themis/business/domain/MqDomain.java

@@ -0,0 +1,24 @@
+package com.qmth.themis.business.domain;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * @Description: mq配置 domain
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/8/5
+ */
+public class MqDomain implements Serializable {
+
+    private Map<String, String> groupMap;
+
+    public Map<String, String> getGroupMap() {
+        return groupMap;
+    }
+
+    public void setGroupMap(Map<String, String> groupMap) {
+        this.groupMap = groupMap;
+    }
+}

+ 11 - 0
themis-exam/src/main/java/com/qmth/themis/exam/config/DictionaryConfig.java

@@ -69,4 +69,15 @@ public class DictionaryConfig {
     public AliYunOssDomain aliYunOssDomain() {
         return new AliYunOssDomain();
     }
+
+    /**
+     * 阿里云oss配置
+     *
+     * @return
+     */
+    @Bean
+    @ConfigurationProperties(prefix = "mq", ignoreUnknownFields = false)
+    public MqDomain mqDomain() {
+        return new MqDomain();
+    }
 }

+ 34 - 32
themis-exam/src/main/java/com/qmth/themis/exam/start/StartRunning.java

@@ -1,9 +1,13 @@
 package com.qmth.themis.exam.start;
 
-import javax.annotation.Resource;
-
 import com.qmth.themis.business.constant.SpringContextHolder;
+import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.exam.config.DictionaryConfig;
 import com.qmth.themis.exam.websocket.WebSocketOeServer;
+import com.qmth.themis.mq.enums.MqGroupEnum;
+import com.qmth.themis.mq.enums.MqTagEnum;
+import com.qmth.themis.mq.enums.MqTopicEnum;
+import com.qmth.themis.mq.listener.RocketMessageConsumer;
 import com.qmth.themis.mq.templete.impl.*;
 import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
 import org.slf4j.Logger;
@@ -12,11 +16,9 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.stereotype.Component;
 
-import com.qmth.themis.business.constant.SystemConstant;
-import com.qmth.themis.mq.enums.MqGroupEnum;
-import com.qmth.themis.mq.enums.MqTagEnum;
-import com.qmth.themis.mq.enums.MqTopicEnum;
-import com.qmth.themis.mq.listener.RocketMessageConsumer;
+import javax.annotation.Resource;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
@@ -32,21 +34,25 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     RocketMessageConsumer rocketMessageConsumer;
 
-    @Value("rocketmq.name-server")
+    @Value("${rocketmq.name-server}")
     String nameServer;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
+        Map<String, String> map = dictionaryConfig.mqDomain().getGroupMap();
         /**
          * session mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWebGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWinGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerMacGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWxappGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerIosGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerAndroidGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWebGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWebGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWinGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWinGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerMacGroup.getCode() : map.get(MqGroupEnum.sessionConsumerMacGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWxappGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWxappGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerIosGroup.getCode() : map.get(MqGroupEnum.sessionConsumerIosGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerAndroidGroup.getCode() : map.get(MqGroupEnum.sessionConsumerAndroidGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
         /**
          * session mq end
          */
@@ -54,8 +60,8 @@ public class StartRunning implements CommandLineRunner {
         /**
          * userLog mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerUserGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerStudentGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerUserGroup.getCode() : map.get(MqGroupEnum.userLogConsumerUserGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerStudentGroup.getCode() : map.get(MqGroupEnum.userLogConsumerStudentGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
         /**
          * userLog mq end
          */
@@ -63,10 +69,10 @@ public class StartRunning implements CommandLineRunner {
         /**
          * task mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamStudentImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamPaperImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamStudentImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamStudentImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeExportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamPaperImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamPaperImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
         /**
          * task mq end
          */
@@ -74,26 +80,22 @@ public class StartRunning implements CommandLineRunner {
         /**
          * websocket mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.websocketConsumerUnNormalGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.websocketConsumerOeGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.oe.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebSocketOeServer.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.websocketConsumerUnNormalGroup.getCode() : map.get(MqGroupEnum.websocketConsumerUnNormalGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.websocketConsumerOeGroup.getCode() : map.get(MqGroupEnum.websocketConsumerOeGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.oe.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebSocketOeServer.class));
         /**
          * websocket mq end
          */
         //计算客观分
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.calculateObjectiveScoreGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
-        
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.calculateObjectiveScoreGroup.getCode() : map.get(MqGroupEnum.calculateObjectiveScoreGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
+
         //人脸验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.faceVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
-        
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.faceVerifySaveGroup.getCode() : map.get(MqGroupEnum.faceVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
+
         //活体验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.livenessVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
-        
-        //考试记录数据持久化
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.examRecordPersistedGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examRecordPersisted.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamRecordPersistedConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.livenessVerifySaveGroup.getCode() : map.get(MqGroupEnum.livenessVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
 
         //考试断点记录
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.examBreakHistoryGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
-
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.examBreakHistoryGroup.getCode() : map.get(MqGroupEnum.examBreakHistoryGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
         SystemConstant.initTempFiles();
         log.info("服务器启动时执行 end");
     }

+ 12 - 0
themis-task/src/main/java/com/qmth/themis/task/config/DictionaryConfig.java

@@ -1,6 +1,7 @@
 package com.qmth.themis.task.config;
 
 import com.qmth.themis.business.domain.AliYunOssDomain;
+import com.qmth.themis.business.domain.MqDomain;
 import com.qmth.themis.business.domain.SysDomain;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
@@ -37,4 +38,15 @@ public class DictionaryConfig {
     public AliYunOssDomain aliYunOssDomain() {
         return new AliYunOssDomain();
     }
+
+    /**
+     * 阿里云oss配置
+     *
+     * @return
+     */
+    @Bean
+    @ConfigurationProperties(prefix = "mq", ignoreUnknownFields = false)
+    public MqDomain mqDomain() {
+        return new MqDomain();
+    }
 }

+ 41 - 36
themis-task/src/main/java/com/qmth/themis/task/start/StartRunning.java

@@ -1,27 +1,27 @@
 package com.qmth.themis.task.start;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.annotation.Resource;
-
-import com.qmth.themis.mq.templete.impl.*;
-import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
-
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.mq.enums.MqGroupEnum;
 import com.qmth.themis.mq.enums.MqTagEnum;
 import com.qmth.themis.mq.enums.MqTopicEnum;
 import com.qmth.themis.mq.listener.RocketMessageConsumer;
+import com.qmth.themis.mq.templete.impl.*;
+import com.qmth.themis.task.config.DictionaryConfig;
 import com.qmth.themis.task.enums.QuartzTaskEnum;
 import com.qmth.themis.task.listener.QuartzOrderlyImpl;
 import com.qmth.themis.task.quartz.MqJob;
 import com.qmth.themis.task.service.QuartzService;
+import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
@@ -40,9 +40,12 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     RocketMessageConsumer rocketMessageConsumer;
 
-    @Value("rocketmq.name-server")
+    @Value("${rocketmq.name-server}")
     String nameServer;
 
+    @Resource
+    DictionaryConfig dictionaryConfig;
+
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
@@ -53,15 +56,16 @@ public class StartRunning implements CommandLineRunner {
         quartzService.addJob(MqJob.class, QuartzTaskEnum.mqJobName.name(), QuartzTaskEnum.mqJobGroupName.name(), "0 0/1 * * * ?", mqMap);
         log.info("增加mqjob end");
 
+        Map<String, String> map = dictionaryConfig.mqDomain().getGroupMap();
         /**
          * session mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWebGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWinGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerMacGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerWxappGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerIosGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.sessionConsumerAndroidGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWebGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWebGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.web.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWinGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWinGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.win.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerMacGroup.getCode() : map.get(MqGroupEnum.sessionConsumerMacGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.mac.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerWxappGroup.getCode() : map.get(MqGroupEnum.sessionConsumerWxappGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.wxapp.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerIosGroup.getCode() : map.get(MqGroupEnum.sessionConsumerIosGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.ios.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.sessionConsumerAndroidGroup.getCode() : map.get(MqGroupEnum.sessionConsumerAndroidGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.android.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(SessionConcurrentlyImpl.class));
         /**
          * session mq end
          */
@@ -69,8 +73,8 @@ public class StartRunning implements CommandLineRunner {
         /**
          * userLog mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerUserGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.userLogConsumerStudentGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerUserGroup.getCode() : map.get(MqGroupEnum.userLogConsumerUserGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.user.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.userLogConsumerStudentGroup.getCode() : map.get(MqGroupEnum.userLogConsumerStudentGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.student.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(UserLogConcurrentlyImpl.class));
         /**
          * userLog mq end
          */
@@ -78,10 +82,10 @@ public class StartRunning implements CommandLineRunner {
         /**
          * task mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamStudentImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.taskConsumerExamPaperImportGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamStudentImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamStudentImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examStudentImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerRoomCodeExportGroup.getCode() : map.get(MqGroupEnum.taskConsumerRoomCodeExportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.roomCodeExport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.taskConsumerExamPaperImportGroup.getCode() : map.get(MqGroupEnum.taskConsumerExamPaperImportGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examPaperImport.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(TaskConcurrentlyImpl.class));
         /**
          * task mq end
          */
@@ -89,28 +93,29 @@ public class StartRunning implements CommandLineRunner {
         /**
          * websocket mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.websocketConsumerUnNormalGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.websocketConsumerUnNormalGroup.getCode() : map.get(MqGroupEnum.websocketConsumerUnNormalGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.unNormal.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(WebsocketUnNormalConcurrentlyImpl.class));
         /**
          * websocket mq end
          */
         //计算客观分
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.calculateObjectiveScoreGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
-        
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.calculateObjectiveScoreGroup.getCode() : map.get(MqGroupEnum.calculateObjectiveScoreGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.calculateObjectiveScore.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(CalculateObjectiveScoreConcurrentlyImpl.class));
+
         //人脸验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.faceVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
-        
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.faceVerifySaveGroup.getCode() : map.get(MqGroupEnum.faceVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.faceVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(FaceVerifyConcurrentlyImpl.class));
+
         //活体验证保存
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.livenessVerifySaveGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
-        
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.livenessVerifySaveGroup.getCode() : map.get(MqGroupEnum.livenessVerifySaveGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.livenessVerifySave.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(LivenessVerifyConcurrentlyImpl.class));
+
+        //考试断点记录
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.examBreakHistoryGroup.getCode() : map.get(MqGroupEnum.examBreakHistoryGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
+
         /**
          * quartz mq start
          */
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.quartzConsumerExamActivityGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examActivity.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(QuartzOrderlyImpl.class));
+        rocketMessageConsumer.setRocketMQConsumer(nameServer, Objects.isNull(map) ? MqGroupEnum.quartzConsumerExamActivityGroup.getCode() : map.get(MqGroupEnum.quartzConsumerExamActivityGroup.name()), Objects.isNull(map) ? MqTopicEnum.themisTopic.getCode() : map.get("name"), MqTagEnum.examActivity.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(QuartzOrderlyImpl.class));
         /**
          * quartz mq end
          */
-        //考试断点记录
-        rocketMessageConsumer.setRocketMQConsumer(nameServer, MqGroupEnum.examBreakHistoryGroup.getCode(), MqTopicEnum.themisTopic.getCode(), MqTagEnum.examBreakHistory.name(), MessageModel.CLUSTERING, SpringContextHolder.getBean(ExamBreakHistoryConcurrentlyImpl.class));
         log.info("服务器启动时执行 end");
     }
 }