From aa270b5f7d5415dcb5ac2a8d7e5e73ddc283a3cc Mon Sep 17 00:00:00 2001 From: xupei Date: Thu, 25 Jan 2024 14:11:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=92=E9=98=9F=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ai/da/service/impl/GenerateServiceImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java index 81d48ddc..8039fbcd 100644 --- a/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/GenerateServiceImpl.java @@ -360,6 +360,7 @@ public class GenerateServiceImpl extends ServiceImpl i @Override public Long getRankPosition(String uniqueId) { + // rank 从0开始 return redisUtil.getRank(consumptionOrderKey, uniqueId); } @@ -374,8 +375,10 @@ public class GenerateServiceImpl extends ServiceImpl i // 2、判断该请求是否还在排队 Boolean existsInZSet = redisUtil.isElementExistsInZSet(consumptionOrderKey, uniqueId); if (existsInZSet) { - // 排队中,给出当前排序位置 - return new GenerateCollectionVO(getRankPosition(uniqueId) + 1L); + // 排队中,给出当前排序位置,rank从0开始 + Long rankPosition = getRankPosition(uniqueId); + // 有9个消费者,所以当rank>8即当前请求至少排在第九位时,其实际排队位置为9-8+1,当rank <=8,请求均在处理中 + return new GenerateCollectionVO( rankPosition > 8L ? rankPosition - 8 + 1 : 1L); } // 3、判断redis中有没有