|
@@ -25,8 +25,7 @@ import org.springframework.stereotype.Component;
|
|
|
topic = "${rocketmq.topic}",
|
|
|
selectorExpression = MQConstants.TAG_STUDENT_APPLY,
|
|
|
consumeMode = ConsumeMode.ORDERLY,
|
|
|
- messageModel = MessageModel.CLUSTERING,
|
|
|
- enableMsgTrace = true
|
|
|
+ messageModel = MessageModel.CLUSTERING
|
|
|
)
|
|
|
public class ExamReserveMQConsumer implements RocketMQListener<MessageExt> {
|
|
|
|
|
@@ -48,19 +47,24 @@ public class ExamReserveMQConsumer implements RocketMQListener<MessageExt> {
|
|
|
log.warn("【考生预约队列】MQ消息转换失败!msgId:{} queueOffset:{}", message.getMsgId(), message.getQueueOffset());
|
|
|
throw new RuntimeException("MQ消息转换失败!");
|
|
|
}
|
|
|
- log.info("【考生预约队列】MQ消息消费!msgId:{} queueOffset:{}", message.getMsgId(), message.getQueueOffset());
|
|
|
+ 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("【考生预约队列】队列对应的缓存记录不存在!{}_{}_{}_{}", queueBean.getStudentId(),
|
|
|
- queueBean.getExamSiteId(), queueBean.getTimePeriodId(), queueBean.getCancel());
|
|
|
+ log.warn("【考生预约队列】队列对应的缓存记录不存在!bizId:{} {}_{}_{}_{}", queueBean.getBizId(),
|
|
|
+ queueBean.getStudentId(), queueBean.getExamSiteId(), queueBean.getTimePeriodId(), queueBean.getCancel());
|
|
|
// 若缓存数据不存在,则采用队列数据持久化
|
|
|
bean = queueBean;
|
|
|
} else {
|
|
|
- // 默认采用最新预约缓存数据持久化(极端情况下队列消息顺序异常)
|
|
|
- bean = cacheBean;
|
|
|
+ if (cacheBean.getBizId() != null && cacheBean.getBizId() >= queueBean.getBizId()) {
|
|
|
+ // 默认采用最新预约缓存数据持久化(极端情况下队列消息顺序异常)
|
|
|
+ bean = cacheBean;
|
|
|
+ } else {
|
|
|
+ // 其它情况采用队列数据持久化
|
|
|
+ bean = queueBean;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
this.saveOrUpdate(bean);
|