Procházet zdrojové kódy

Merge remote-tracking branch 'origin/release_v5.0.6'

# Conflicts:
#	examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/report/ExamProcessRecordReport.java
#	examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/report/RocketMqConsumerListener.java
deason před 1 týdnem
rodič
revize
4a327dee75

+ 2 - 2
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/report/ExamProcessRecordReport.java

@@ -62,7 +62,7 @@ public class ExamProcessRecordReport extends BaseReport {
         this.examRecordDataId = examRecordDataId;
         this.examProcess = examProcess;
         this.recordTime = recordTime;
-        this.topic = ReportsUtil.getReportTopic();
-        this.tag = Tag.EXAM_PROCESS_RECORD.getCode();
+        this.topic = ReportsUtil.curTopic(Tag.EXAM_PROCESS_RECORD);
+        this.tag = Tag.EXAM_PROCESS_RECORD.name();
     }
 }

+ 12 - 19
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/report/RocketMqConsumerListener.java

@@ -1,24 +1,16 @@
 package cn.com.qmth.examcloud.core.oe.student.report;
 
-import java.util.Properties;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.alibaba.fastjson.JSON;
-import com.aliyun.openservices.ons.api.Action;
-import com.aliyun.openservices.ons.api.ConsumeContext;
-import com.aliyun.openservices.ons.api.Consumer;
-import com.aliyun.openservices.ons.api.Message;
-import com.aliyun.openservices.ons.api.MessageListener;
-import com.aliyun.openservices.ons.api.ONSFactory;
-import com.aliyun.openservices.ons.api.PropertyKeyConst;
-
 import cn.com.qmth.examcloud.core.oe.student.service.ExamProcessRecordService;
 import cn.com.qmth.examcloud.reports.commons.enums.Tag;
 import cn.com.qmth.examcloud.reports.commons.util.ReportsUtil;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import cn.com.qmth.examcloud.web.support.SpringContextHolder;
+import com.alibaba.fastjson.JSON;
+import com.aliyun.openservices.ons.api.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Properties;
 
 public class RocketMqConsumerListener {
 
@@ -30,13 +22,13 @@ public class RocketMqConsumerListener {
     private static Properties properties = new Properties();
 
     static {
-        properties.put(PropertyKeyConst.AccessKey, PropertyHolder.getString("$rocketmq-accesskey"));
+        properties.put(PropertyKeyConst.AccessKey, PropertyHolder.getString("examcloud.rocketmq.accesskey"));
         // AccessKeySecret 阿里云身份验证,在阿里云服务器管理控制台创建。
-        properties.put(PropertyKeyConst.SecretKey, PropertyHolder.getString("$rocketmq-secretkey"));
+        properties.put(PropertyKeyConst.SecretKey, PropertyHolder.getString("examcloud.rocketmq.secretkey"));
         // 设置发送超时时间,单位毫秒。
         properties.setProperty(PropertyKeyConst.SendMsgTimeoutMillis, "3000");
         // 设置 TCP 接入域名,进入控制台的实例详情页面的 TCP 协议客户端接入点区域查看。
-        properties.put(PropertyKeyConst.NAMESRV_ADDR, PropertyHolder.getString("$rocketmq-namesrv-addr"));
+        properties.put(PropertyKeyConst.NAMESRV_ADDR, PropertyHolder.getString("examcloud.rocketmq.namesrv_addr"));
         // 顺序消息消费失败进行重试前的等待时间,单位(毫秒),取值范围: 10 毫秒 ~ 30,000 毫秒
         properties.put(PropertyKeyConst.SuspendTimeMillis, "100");
         // 消息消费失败时的最大重试次数
@@ -48,9 +40,9 @@ public class RocketMqConsumerListener {
     }
 
     private static void onlineExamStudent() {
-        properties.put(PropertyKeyConst.GROUP_ID, Tag.EXAM_PROCESS_RECORD.getGroup());
+        properties.put(PropertyKeyConst.GROUP_ID, ReportsUtil.curConsumerGroup(Tag.EXAM_PROCESS_RECORD));
         Consumer consumer = ONSFactory.createConsumer(properties);
-        consumer.subscribe(ReportsUtil.getReportTopic(), Tag.EXAM_PROCESS_RECORD.getCode(), new MessageListener() {
+        consumer.subscribe(ReportsUtil.curTopic(Tag.EXAM_PROCESS_RECORD), Tag.EXAM_PROCESS_RECORD.name(), new MessageListener() {
 
             @Override
             public Action consume(Message message, ConsumeContext context) {
@@ -74,4 +66,5 @@ public class RocketMqConsumerListener {
         examProcessRecordService.saveExamProcessRecord(r.getExamRecordDataId(), r.getExamProcess().getDesc(),
                 r.getRecordTime(), r.getRemoteHost());
     }
+
 }

+ 6 - 12
examcloud-core-oe-student-starter/src/main/java/cn/com/qmth/examcloud/core/oe/student/starter/config/ExamProcessRecordTask.java

@@ -1,7 +1,6 @@
 package cn.com.qmth.examcloud.core.oe.student.starter.config;
 
 import cn.com.qmth.examcloud.core.oe.student.report.RocketMqConsumerListener;
-import cn.com.qmth.examcloud.reports.commons.enums.MqType;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -13,20 +12,14 @@ import org.springframework.stereotype.Component;
 @Component
 @Order(999)
 public class ExamProcessRecordTask implements ApplicationRunner {
-    private static final Logger LOG = LoggerFactory.getLogger(ExamProcessRecordTask.class);
 
-    private void startConsumerListener() {
-
-        String mqType = PropertyHolder.getString("$report.mq-type");
-
-        Boolean reportEnable = PropertyHolder.getBoolean("$report.enable", false);
+    private static final Logger log = LoggerFactory.getLogger(ExamProcessRecordTask.class);
 
+    private void startConsumerListener() {
+        Boolean reportEnable = PropertyHolder.getBoolean("examcloud.rocketmq.enable", false);
         if (reportEnable) {
-            if (MqType.ROCKETMQ.getCode().equals(mqType)) {
-                RocketMqConsumerListener.start();
-            } else {
-                LOG.error("no $report.mq-type property config!");
-            }
+            RocketMqConsumerListener.start();
+            log.warn("Rocketmq ConsumerListener started...");
         }
     }
 
@@ -34,4 +27,5 @@ public class ExamProcessRecordTask implements ApplicationRunner {
     public void run(ApplicationArguments args) throws Exception {
         new Thread(() -> startConsumerListener()).start();
     }
+
 }