From 556ce213434a5d236eae0c8d786a399d20a56b9d Mon Sep 17 00:00:00 2001 From: pig666 Date: Fri, 29 May 2020 21:51:41 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20#1310=20=E8=A7=A3?= =?UTF-8?q?=E5=86=B3sequence=E7=94=9F=E6=88=90=E5=BA=8F=E5=88=97=E5=8F=B7,?= =?UTF-8?q?=E5=A4=9A=E7=A7=9F=E6=88=B7=E8=A6=86=E7=9B=96=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sequence/sequence/impl/DefaultRangeSequence.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/sequence/impl/DefaultRangeSequence.java b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/sequence/impl/DefaultRangeSequence.java index f272335e3..63b99a707 100755 --- a/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/sequence/impl/DefaultRangeSequence.java +++ b/pigx-common/pigx-common-sequence/src/main/java/com/pig4cloud/pigx/common/sequence/sequence/impl/DefaultRangeSequence.java @@ -10,6 +10,8 @@ import com.pig4cloud.pigx.common.sequence.range.SeqRangeMgr; import com.pig4cloud.pigx.common.sequence.sequence.RangeSequence; import java.util.Date; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -37,6 +39,8 @@ public class DefaultRangeSequence implements RangeSequence { */ private volatile SeqRange currentRange; + private static Map seqRangeMap = new ConcurrentHashMap<>(8); + /** * 需要获取区间的业务名称 */ @@ -46,12 +50,14 @@ public class DefaultRangeSequence implements RangeSequence { public long nextValue() throws SeqException { String name = bizName.create(); + currentRange = seqRangeMap.get(name); //当前区间不存在,重新获取一个区间 if (null == currentRange) { lock.lock(); try { if (null == currentRange) { currentRange = seqRangeMgr.nextRange(name); + seqRangeMap.put(name, currentRange); } } finally { lock.unlock(); @@ -109,3 +115,4 @@ public class DefaultRangeSequence implements RangeSequence { } } +