Browse Source

!91 fix(redis leftPop有bug,造成消息丢失): 填补逻辑

Merge pull request !91 from JavaOne/v_3.0.0
master
blue 2 years ago
committed by Gitee
parent
commit
3e3de539e4
No known key found for this signature in database GPG Key ID: 173E9B9CA92EEF8F
  1. 5
      im-commom/src/main/java/com/bx/imcommon/mq/RedisMQPullTask.java

5
im-commom/src/main/java/com/bx/imcommon/mq/RedisMQPullTask.java

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

Loading…
Cancel
Save