From 9bfdc6628f516ccb9b53f60f1c227ca8516d6264 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Wed, 20 Dec 2023 21:04:50 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E4=B8=8B?= =?UTF-8?q?=E5=9F=BA=E4=BA=8E=E6=97=B6=E9=97=B4=20ID=20=E7=9A=84=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/workflow/core/engine/id/TimeBasedIdGenerator.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/id/TimeBasedIdGenerator.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/id/TimeBasedIdGenerator.java index ec4aee6a0..209d48ff6 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/id/TimeBasedIdGenerator.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/id/TimeBasedIdGenerator.java @@ -15,8 +15,7 @@ import java.util.concurrent.atomic.AtomicLong; */ public class TimeBasedIdGenerator implements IdGenerator { - private static final long SEQUENCE_BITS = 9L; - private static final long MAX_SEQUENCE = ~(-1L << SEQUENCE_BITS); + private static final long MAX_SEQUENCE = 1000_000_000L; private static final AtomicLong sequence = new AtomicLong(0); private static volatile String lastTimestamp = ""; @@ -26,7 +25,7 @@ public class TimeBasedIdGenerator implements IdGenerator { String timestamp = dateFormat.format(new Date()); if (timestamp.equals(lastTimestamp)) { - long currentSequence = sequence.incrementAndGet() & MAX_SEQUENCE; + long currentSequence = sequence.incrementAndGet() % MAX_SEQUENCE; if (currentSequence == 0) { // 如果递增数已达到最大值,则等待下一毫秒 timestamp = tilNextTimestamp(timestamp, dateFormat);