From c44ba174d07433e7075141d8daa7fd52ba545c3d Mon Sep 17 00:00:00 2001 From: yitter Date: Sat, 3 Apr 2021 00:41:24 +0800 Subject: [PATCH] auto commit --- .../source/Yitter.IdGenerator/Core/SnowWorkerM1.cs | 2 +- C/source/idgen/SnowWorkerM1.c | 13 ++++++++++--- Go/source/idgen/SnowWorkerM1.go | 5 ++++- .../java/com/github/yitter/core/SnowWorkerM1.java | 2 +- README.md | 2 -- Rust/source/src/yitgen/core/snow_worker_m1.rs | 2 +- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs b/C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs index 9a11b8c..4755e55 100644 --- a/C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs +++ b/C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs @@ -264,7 +264,7 @@ namespace Yitter.IdGenerator BeginTurnBackAction(_TurnBackTimeTick); } - Thread.Sleep(10); + //Thread.Sleep(1); return CalcTurnBackId(_TurnBackTimeTick); } diff --git a/C/source/idgen/SnowWorkerM1.c b/C/source/idgen/SnowWorkerM1.c index e35102b..82d34bc 100644 --- a/C/source/idgen/SnowWorkerM1.c +++ b/C/source/idgen/SnowWorkerM1.c @@ -8,6 +8,7 @@ #include #include #include +#include #include "SnowWorkerM1.h" @@ -73,16 +74,21 @@ static inline uint64_t NextNormalId(SnowFlakeWorker *worker) { worker->_TurnBackIndex = 1; } } + + // usleep(1000); // 暂停1ms return CalcTurnBackId(worker); } + if (worker->_TurnBackTimeTick > 0) { worker->_TurnBackTimeTick = 0; } + if (currentTimeTick > worker->_LastTimeTick) { worker->_LastTimeTick = currentTimeTick; worker->_CurrentSeqNumber = worker->MinSeqNumber; return CalcId(worker); } + if (worker->_CurrentSeqNumber > worker->MaxSeqNumber) { worker->_TermIndex++; worker->_LastTimeTick++; @@ -92,6 +98,7 @@ static inline uint64_t NextNormalId(SnowFlakeWorker *worker) { worker->_GenCountInOneTerm = 1; return CalcId(worker); } + return CalcId(worker); } @@ -131,13 +138,13 @@ extern uint64_t WorkerM1NextId(SnowFlakeWorker *worker) { } extern uint64_t GetCurrentTimeTick(SnowFlakeWorker *worker) { - struct timeval tv; + struct timeval tv; gettimeofday(&tv, NULL); return ((uint64_t) tv.tv_sec * 1000 + tv.tv_usec / 1000 - worker->BaseTime); } extern uint64_t GetCurrentTime() { - struct timeval tv; + struct timeval tv; gettimeofday(&tv, NULL); return ((uint64_t) (tv.tv_sec)) * 1000 + tv.tv_usec / 1000; @@ -147,7 +154,7 @@ extern uint64_t GetCurrentTime() { } extern uint64_t GetCurrentMicroTime() { - struct timeval tv; + struct timeval tv; gettimeofday(&tv, NULL); return ((uint64_t) tv.tv_sec * 1000000 + tv.tv_usec); } diff --git a/Go/source/idgen/SnowWorkerM1.go b/Go/source/idgen/SnowWorkerM1.go index 36fd533..c95e4f7 100644 --- a/Go/source/idgen/SnowWorkerM1.go +++ b/Go/source/idgen/SnowWorkerM1.go @@ -152,19 +152,22 @@ func (m1 *SnowWorkerM1) NextNormalId() uint64 { m1.BeginTurnBackAction(m1._TurnBackTimeTick) } - time.Sleep(time.Duration(1) * time.Millisecond) + // time.Sleep(time.Duration(1) * time.Millisecond) return m1.CalcTurnBackId(m1._TurnBackTimeTick) } + // 时间追平时,_TurnBackTimeTick清零 if m1._TurnBackTimeTick > 0 { m1.EndTurnBackAction(m1._TurnBackTimeTick) m1._TurnBackTimeTick = 0 } + if currentTimeTick > m1._LastTimeTick { m1._LastTimeTick = currentTimeTick m1._CurrentSeqNumber = m1.MinSeqNumber return m1.CalcId(m1._LastTimeTick) } + if m1._CurrentSeqNumber > m1.MaxSeqNumber { m1.BeginOverCostAction(currentTimeTick) m1._TermIndex++ diff --git a/Java/source/src/main/java/com/github/yitter/core/SnowWorkerM1.java b/Java/source/src/main/java/com/github/yitter/core/SnowWorkerM1.java index be45ebc..c67494d 100644 --- a/Java/source/src/main/java/com/github/yitter/core/SnowWorkerM1.java +++ b/Java/source/src/main/java/com/github/yitter/core/SnowWorkerM1.java @@ -183,7 +183,7 @@ public class SnowWorkerM1 implements ISnowWorker { } try { - Thread.sleep(10); + // Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/README.md b/README.md index 7d92c5b..3482f9e 100644 --- a/README.md +++ b/README.md @@ -132,8 +132,6 @@ ID示例(基于默认配置): 🔶 当发生系统时间回拨时,算法采用过去时序的预留序数生成新的ID。 -🔶 默认每秒生成100个(速度可调整)。 - 🔶 回拨生成的ID序号,默认靠前,也可以调整为靠后。 🔶 允许时间回拨至本算法预设基数(参数可调)。 diff --git a/Rust/source/src/yitgen/core/snow_worker_m1.rs b/Rust/source/src/yitgen/core/snow_worker_m1.rs index 742a7e9..fee604c 100644 --- a/Rust/source/src/yitgen/core/snow_worker_m1.rs +++ b/Rust/source/src/yitgen/core/snow_worker_m1.rs @@ -204,7 +204,7 @@ impl SnowWorkerM1 { self.BeginTurnBackAction(self._TurnBackTimeTick); } - thread::sleep(std::time::Duration::from_millis(10)); + // thread::sleep(std::time::Duration::from_millis(1)); return self.CalcTurnBackId(self._TurnBackTimeTick); }