|
@@ -1,20 +1,12 @@
|
|
package com.qmth.themis.mq.listener;
|
|
package com.qmth.themis.mq.listener;
|
|
|
|
|
|
-import com.google.gson.Gson;
|
|
|
|
-import com.qmth.themis.business.constant.SpringContextHolder;
|
|
|
|
-import com.qmth.themis.business.constant.SystemConstant;
|
|
|
|
-import com.qmth.themis.business.entity.TMRocketMessage;
|
|
|
|
-import com.qmth.themis.business.service.TMRocketMessageService;
|
|
|
|
-import com.qmth.themis.business.templete.TaskExportTemplete;
|
|
|
|
-import com.qmth.themis.business.templete.TaskImportTemplete;
|
|
|
|
-import com.qmth.themis.business.templete.impl.TaskExamStudentImportTemplete;
|
|
|
|
-import com.qmth.themis.business.templete.impl.TaskRoomCodeExportTemplete;
|
|
|
|
-import com.qmth.themis.business.templete.impl.TaskRoomCodeImportTemplete;
|
|
|
|
-import com.qmth.themis.business.threadPool.MyThreadPool;
|
|
|
|
-import com.qmth.themis.business.util.JacksonUtil;
|
|
|
|
-import com.qmth.themis.business.util.RedisUtil;
|
|
|
|
-import com.qmth.themis.common.contanst.Constants;
|
|
|
|
-import com.qmth.themis.mq.dto.MqDto;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.Objects;
|
|
|
|
+
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
+
|
|
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
|
|
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
|
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
|
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
|
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
|
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
|
|
@@ -30,12 +22,21 @@ import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import javax.annotation.Resource;
|
|
|
|
-import java.io.IOException;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Objects;
|
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
+import com.google.gson.Gson;
|
|
|
|
+import com.qmth.themis.business.constant.SpringContextHolder;
|
|
|
|
+import com.qmth.themis.business.constant.SystemConstant;
|
|
|
|
+import com.qmth.themis.business.entity.TMRocketMessage;
|
|
|
|
+import com.qmth.themis.business.service.TMRocketMessageService;
|
|
|
|
+import com.qmth.themis.business.templete.TaskExportTemplete;
|
|
|
|
+import com.qmth.themis.business.templete.TaskImportTemplete;
|
|
|
|
+import com.qmth.themis.business.templete.impl.TaskExamStudentImportTemplete;
|
|
|
|
+import com.qmth.themis.business.templete.impl.TaskRoomCodeExportTemplete;
|
|
|
|
+import com.qmth.themis.business.templete.impl.TaskRoomCodeImportTemplete;
|
|
|
|
+import com.qmth.themis.business.threadPool.MyThreadPool;
|
|
|
|
+import com.qmth.themis.business.util.JacksonUtil;
|
|
|
|
+import com.qmth.themis.business.util.RedisUtil;
|
|
|
|
+import com.qmth.themis.common.contanst.Constants;
|
|
|
|
+import com.qmth.themis.mq.dto.MqDto;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 普通消息监听 task
|
|
* @Description: 普通消息监听 task
|
|
@@ -75,7 +76,7 @@ public class RocketTaskConsumer {
|
|
mqDto = JacksonUtil.readJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
|
|
mqDto = JacksonUtil.readJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
|
|
log.info(":{}-:{} task import Consumer接收到的消息:{}", threadId, threadName, JacksonUtil.parseJson(mqDto));
|
|
log.info(":{}-:{} task import Consumer接收到的消息:{}", threadId, threadName, JacksonUtil.parseJson(mqDto));
|
|
// log.info(":{}-:{} task import Consumer mqDto sequence:{},tag:{}", threadId, threadName, mqDto.getSequence(), mqDto.getTag());
|
|
// log.info(":{}-:{} task import Consumer mqDto sequence:{},tag:{}", threadId, threadName, mqDto.getSequence(), mqDto.getTag());
|
|
- if (Objects.nonNull(mqDto.getAck()) && mqDto.getAck().intValue() != SystemConstant.STANDARD_ACK_TYPE && Objects.nonNull(redisUtil.get(SystemConstant.TASKLOG_TOPIC_BUFFER_LIST, mqDto.getId())) && redisUtil.lock(SystemConstant.REDIS_LOCK_MQ_PREFIX, mqDto.getId(), SystemConstant.REDIS_LOCK_MQ_TIME_OUT, TimeUnit.SECONDS)) {
|
|
|
|
|
|
+ if (Objects.nonNull(mqDto.getAck()) && mqDto.getAck().intValue() != SystemConstant.STANDARD_ACK_TYPE && Objects.nonNull(redisUtil.get(SystemConstant.TASKLOG_TOPIC_BUFFER_LIST, mqDto.getId())) && redisUtil.lock(SystemConstant.REDIS_LOCK_MQ_PREFIX+mqDto.getId(), SystemConstant.REDIS_LOCK_MQ_TIME_OUT)) {
|
|
Map<String, Object> map = (Map<String, Object>) mqDto.getBody();
|
|
Map<String, Object> map = (Map<String, Object>) mqDto.getBody();
|
|
String tag = mqDto.getTag();
|
|
String tag = mqDto.getTag();
|
|
myThreadPool.arbitratePoolTaskExecutor.execute(() -> {
|
|
myThreadPool.arbitratePoolTaskExecutor.execute(() -> {
|
|
@@ -175,7 +176,7 @@ public class RocketTaskConsumer {
|
|
mqDto = JacksonUtil.readJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
|
|
mqDto = JacksonUtil.readJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
|
|
log.info(":{}-:{} task export Consumer接收到的消息:{}", threadId, threadName, JacksonUtil.parseJson(mqDto));
|
|
log.info(":{}-:{} task export Consumer接收到的消息:{}", threadId, threadName, JacksonUtil.parseJson(mqDto));
|
|
// log.info(":{}-:{} task ExamStudentImport Consumer mqDto sequence:{},tag:{}", threadId, threadName, mqDto.getSequence(), mqDto.getTag());
|
|
// log.info(":{}-:{} task ExamStudentImport Consumer mqDto sequence:{},tag:{}", threadId, threadName, mqDto.getSequence(), mqDto.getTag());
|
|
- if (Objects.nonNull(mqDto.getAck()) && mqDto.getAck().intValue() != SystemConstant.STANDARD_ACK_TYPE && Objects.nonNull(redisUtil.get(SystemConstant.TASKLOG_TOPIC_BUFFER_LIST, mqDto.getId())) && redisUtil.lock(SystemConstant.REDIS_LOCK_MQ_PREFIX, mqDto.getId(), SystemConstant.REDIS_LOCK_MQ_TIME_OUT, TimeUnit.SECONDS)) {
|
|
|
|
|
|
+ if (Objects.nonNull(mqDto.getAck()) && mqDto.getAck().intValue() != SystemConstant.STANDARD_ACK_TYPE && Objects.nonNull(redisUtil.get(SystemConstant.TASKLOG_TOPIC_BUFFER_LIST, mqDto.getId())) && redisUtil.lock(SystemConstant.REDIS_LOCK_MQ_PREFIX+ mqDto.getId(), SystemConstant.REDIS_LOCK_MQ_TIME_OUT)) {
|
|
Map<String, Object> map = (Map<String, Object>) mqDto.getBody();
|
|
Map<String, Object> map = (Map<String, Object>) mqDto.getBody();
|
|
String tag = mqDto.getTag();
|
|
String tag = mqDto.getTag();
|
|
myThreadPool.arbitratePoolTaskExecutor.execute(() -> {
|
|
myThreadPool.arbitratePoolTaskExecutor.execute(() -> {
|