deason 8 сар өмнө
parent
commit
f078935fbf

+ 7 - 7
src/main/java/com/qmth/exam/reserve/cache/impl/ApplyTaskCacheService.java

@@ -133,7 +133,7 @@ public class ApplyTaskCacheService implements CacheConstants {
         String cacheKey = String.format(CACHE_APPLY_AVAILABLE_COUNT, examSiteId, timePeriodId);
         RAtomicLong atomic = redisClient.getRedissonClient().getAtomicLong(cacheKey);
         long value = atomic.incrementAndGet();
-        log.warn("累加成功,最新考点时段剩余可约数量:{} cacheKey:{}", value, cacheKey);
+        log.warn("累加成功,考点时段剩余可约数量:{} {}", value, cacheKey);
     }
 
     /**
@@ -162,13 +162,13 @@ public class ApplyTaskCacheService implements CacheConstants {
         Objects.requireNonNull(result, "缓存操作异常,返回结果为空!");
 
         if (-2 == result) {
-            log.warn("扣减失败,考点时段剩余可约数量缓存不存在!cacheKey:{}", cacheKey);
+            log.warn("扣减失败,考点时段剩余可约数量缓存不存在!{}", cacheKey);
             return false;
         } else if (-1 == result) {
-            log.warn("扣减失败,考点时段剩余可约数量为0不足!cacheKey:{}", cacheKey);
+            log.warn("扣减失败,考点时段剩余可约数量为0不足!{}", cacheKey);
             return false;
         }
-        log.info("扣减成功,最新考点时段剩余可约数量:{} cacheKey:{}", result, cacheKey);
+        log.info("扣减成功,考点时段剩余可约数量:{} {}", result, cacheKey);
         return true;
     }
 
@@ -204,11 +204,11 @@ public class ApplyTaskCacheService implements CacheConstants {
                     RAtomicLong atomic = redisClient.getRedissonClient().getAtomicLong(cacheKey);
                     long availableCount = Math.max(atomic.get() + diffCapacity, 0);
                     atomic.set(availableCount);
-                    log.warn("更新考点时段剩余可约数量:{} cacheKey:{}", availableCount, cacheKey);
+                    log.warn("更新考点时段剩余可约数量:{} {}", availableCount, cacheKey);
                 } else {
                     RAtomicLong atomic = redisClient.getRedissonClient().getAtomicLong(cacheKey);
                     atomic.set(newCapacity);
-                    log.warn("初始考点时段剩余可约数量:{} cacheKey:{}", newCapacity, cacheKey);
+                    log.warn("初始考点时段剩余可约数量:{} {}", newCapacity, cacheKey);
                 }
             }
         } finally {
@@ -260,7 +260,7 @@ public class ApplyTaskCacheService implements CacheConstants {
                     int availableCount = Math.max(examSite.getCapacity() - finishCount, 0);
                     RAtomicLong atomic = redisClient.getRedissonClient().getAtomicLong(cacheKey);
                     atomic.set(availableCount);
-                    log.warn("{}考点时段剩余可约数量:{} cacheKey:{}", existCache ? "更新" : "初始", availableCount, cacheKey);
+                    log.warn("{}考点时段剩余可约数量:{} {}", existCache ? "更新" : "初始", availableCount, cacheKey);
                 }
             } finally {
                 try {

+ 14 - 8
src/main/java/com/qmth/exam/reserve/mq/ExamReserveMQConsumer.java

@@ -44,25 +44,31 @@ public class ExamReserveMQConsumer implements RocketMQListener<MessageExt> {
     public void onMessage(MessageExt message) {
         ApplyRecordCacheBean queueBean = JsonHelper.toObj(message.getBody(), ApplyRecordCacheBean.class);
         if (queueBean == null) {
-            log.warn("【考生预约队列】MQ消息转换失败!msgId:{} queueOffset:{}", message.getMsgId(), message.getQueueOffset());
+            log.warn("【考生预约队列】MQ消息转换失败!queueOffset:{} msgId:{}", message.getQueueOffset(), message.getMsgId());
             throw new RuntimeException("MQ消息转换失败!");
         }
-        log.info("【考生预约队列】MQ消息消费!msgId:{} bizId:{}", message.getMsgId(), queueBean.getBizId());
 
         ApplyRecordCacheBean cacheBean = applyTaskCacheService.getStudentApplyRecord(queueBean.getStudentId(),
                 queueBean.getExamSiteId(), queueBean.getTimePeriodId());
+
         final ApplyRecordCacheBean bean;
         if (cacheBean == null) {
-            log.warn("【考生预约队列】队列对应的缓存记录不存在!bizId:{} {}_{}_{}_{}", queueBean.getBizId(),
-                    queueBean.getStudentId(), queueBean.getExamSiteId(), queueBean.getTimePeriodId(), queueBean.getCancel());
+            log.warn("【考生预约队列】MQ队列元素对应的缓存记录不存在!bizId:{} msgId:{}", queueBean.getBizId(), message.getMsgId());
+
             // 若缓存数据不存在,则采用队列数据持久化
             bean = queueBean;
         } else {
             if (cacheBean.getBizId() != null && cacheBean.getBizId() >= queueBean.getBizId()) {
+                log.info("【考生预约队列】MQ消息消费!bizId:{} cacheBizId:{} msgId:{}", queueBean.getBizId(),
+                        cacheBean.getBizId(), message.getMsgId());
+
                 // 默认采用最新预约缓存数据持久化(极端情况下队列消息顺序异常)
                 bean = cacheBean;
             } else {
-                // 其它情况采用队列数据持久化
+                log.warn("【考生预约队列】缓存中的队列业务流水号无效!bizId:{} cacheBizId:{} msgId:{}", queueBean.getBizId(),
+                        cacheBean.getBizId(), message.getMsgId());
+
+                // 其它情况,采用队列数据持久化
                 bean = queueBean;
             }
         }
@@ -77,7 +83,7 @@ public class ExamReserveMQConsumer implements RocketMQListener<MessageExt> {
         wrapper.eq(StudentApplyEntity::getStudentId, bean.getStudentId());
         StudentApplyEntity data = studentApplyService.getOne(wrapper);
 
-        String msg = String.format("%s_%s_%s_%s", bean.getStudentId(), bean.getExamSiteId(), bean.getTimePeriodId(), bean.getCancel());
+        String logContent = String.format("%s_%s_%s_%s", bean.getStudentId(), bean.getExamSiteId(), bean.getTimePeriodId(), bean.getCancel());
         if (data != null) {
             // 存在预约记录,则更新
             data.setCancel(bean.getCancel());
@@ -90,7 +96,7 @@ public class ExamReserveMQConsumer implements RocketMQListener<MessageExt> {
             updateWrapper.set(StudentApplyEntity::getUpdateTime, bean.getOperateTime());
             updateWrapper.eq(StudentApplyEntity::getId, data.getId());
             studentApplyService.update(updateWrapper);
-            log.warn("【考生预约】DB更新!id:{} {}", data.getId(), msg);
+            log.warn("【考生预约】DB更新!{} dbId:{} bizId:{}", logContent, data.getId(), bean.getBizId());
         } else {
             // 不存在预约记录,则新增
             data = new StudentApplyEntity();
@@ -102,7 +108,7 @@ public class ExamReserveMQConsumer implements RocketMQListener<MessageExt> {
             data.setCreateTime(bean.getOperateTime());
             data.setUpdateTime(bean.getOperateTime());
             studentApplyService.save(data);
-            log.warn("【考生预约】DB新增!id:{} {}", data.getId(), msg);
+            log.warn("【考生预约】DB新增!{} dbId:{} bizId:{}", logContent, data.getId(), bean.getBizId());
         }
 
         if (data.getCancel()) {

+ 4 - 4
src/main/java/com/qmth/exam/reserve/mq/ExamReserveMQProducer.java

@@ -33,14 +33,14 @@ public class ExamReserveMQProducer implements MQConstants {
         // 主题:分类
         String destination = mqTopic + ":" + TAG_STUDENT_APPLY;
 
-        Message<ApplyRecordCacheBean> message = MessageBuilder.withPayload(bean).build();
         // MQ消息延迟级别3 = 10秒
         int delayLevel = 3;
 
+        Message<ApplyRecordCacheBean> message = MessageBuilder.withPayload(bean).build();
+
         SendResult result = rocketMQTemplate.syncSendOrderly(destination, message, hashKey, mqSendMessageTimeout, delayLevel);
-        log.info("【考生预约队列】消息推送!sendStatus:{} msgId:{} bizId:{} {}_{}_{}_{}",
-                result.getSendStatus(), result.getMsgId(), bean.getBizId(), bean.getStudentId(),
-                bean.getExamSiteId(), bean.getTimePeriodId(), bean.getCancel());
+        log.info("【考生预约队列】消息推送{}!{}_{}_{}_{} bizId:{} msgId:{}", result.getSendStatus(), bean.getStudentId(),
+                bean.getExamSiteId(), bean.getTimePeriodId(), bean.getCancel(), bean.getBizId(), result.getMsgId());
     }
 
 }