Browse Source

auto commit

tags/v1.0.0
yitter 3 years ago
parent
commit
c44ba174d0
6 changed files with 17 additions and 9 deletions
  1. +1
    -1
      C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs
  2. +10
    -3
      C/source/idgen/SnowWorkerM1.c
  3. +4
    -1
      Go/source/idgen/SnowWorkerM1.go
  4. +1
    -1
      Java/source/src/main/java/com/github/yitter/core/SnowWorkerM1.java
  5. +0
    -2
      README.md
  6. +1
    -1
      Rust/source/src/yitgen/core/snow_worker_m1.rs

+ 1
- 1
C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs View File

@@ -264,7 +264,7 @@ namespace Yitter.IdGenerator
BeginTurnBackAction(_TurnBackTimeTick);
}
Thread.Sleep(10);
//Thread.Sleep(1);
return CalcTurnBackId(_TurnBackTimeTick);
}


+ 10
- 3
C/source/idgen/SnowWorkerM1.c View File

@@ -8,6 +8,7 @@
#include <stdlib.h>
#include <stdbool.h>
#include <sys/time.h>
#include <unistd.h>
#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);
}


+ 4
- 1
Go/source/idgen/SnowWorkerM1.go View File

@@ -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++


+ 1
- 1
Java/source/src/main/java/com/github/yitter/core/SnowWorkerM1.java View File

@@ -183,7 +183,7 @@ public class SnowWorkerM1 implements ISnowWorker {
}
try {
Thread.sleep(10);
// Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}


+ 0
- 2
README.md View File

@@ -132,8 +132,6 @@ ID示例(基于默认配置):
🔶 当发生系统时间回拨时,算法采用过去时序的预留序数生成新的ID。
🔶 默认每秒生成100个(速度可调整)。
🔶 回拨生成的ID序号,默认靠前,也可以调整为靠后。
🔶 允许时间回拨至本算法预设基数(参数可调)。


+ 1
- 1
Rust/source/src/yitgen/core/snow_worker_m1.rs View File

@@ -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);
}


Loading…
Cancel
Save