Procházet zdrojové kódy

修改幂等判断逻辑

tianboguang před 2 roky
rodič
revize
f11ad0b7ac

+ 4 - 4
src/main/java/com/fdkankan/modeling/receiver/RabbitMqListener.java

@@ -262,11 +262,11 @@ public class RabbitMqListener {
 
         if(!ObjectUtils.isEmpty(buildLog.getMessageId())){
             // 设置消息id幂等性,防止消息重复消费
-            long messageIdCount = redisUtil.incr(SysConstants.SCENE_BUILDING + buildLog.getMessageId(), 1);
-            if (messageIdCount == 1) {
+            Long messageIdCount = redisUtil.incr(SysConstants.SCENE_BUILDING + buildLog.getMessageId(), 1);
+            if (messageIdCount.compareTo(1L) == 0) {
                 redisUtil.expire(key, SysConstants.modelTimeOut);
-            }else{
-                log.error("服务:{},消息重复消费:{},重复消费次数:{}", SysConstants.hostName, buildLog.getMessageId(),messageIdCount);
+            } else {
+                log.error("服务:{},消息重复消费:{},重复消费次数:{}", SysConstants.hostName, buildLog.getMessageId(), messageIdCount);
                 throw new BuildException(ModelingBuildStatus.REPEAT);
             }
         }