Просмотр исходного кода

!91 fix(redis leftPop有bug,造成消息丢失): 填补逻辑
Merge pull request !91 from JavaOne/v_3.0.0

blue 1 год назад
Родитель
Сommit
3e3de539e4
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      im-commom/src/main/java/com/bx/imcommon/mq/RedisMQPullTask.java

+ 4 - 1
im-commom/src/main/java/com/bx/imcommon/mq/RedisMQPullTask.java

@@ -79,7 +79,7 @@ public class RedisMQPullTask implements CommandLineRunner {
                     if (!EXECUTOR.isShutdown()) {
                         if (datas.size() < batchSize) {
                             // 数据已经消费完,等待下一个周期继续拉取
-                            EXECUTOR.schedule(this, period, TimeUnit.MICROSECONDS);
+                            EXECUTOR.schedule(this, period, TimeUnit.MILLISECONDS);
                         } else {
                             // 数据没有消费完,直接开启下一个消费周期
                             EXECUTOR.execute(this);
@@ -102,6 +102,9 @@ public class RedisMQPullTask implements CommandLineRunner {
                 objects.add(obj);
                 obj = redisMQTemplate.opsForList().leftPop(key);
             }
+            if (!Objects.isNull(obj)){
+                objects.add(obj);
+            }
         }
         return objects;
     }