1
0
mirror of synced 2026-10-07 23:37:34 +08:00

auto commit

This commit is contained in:
yitter
2022-09-15 23:08:35 +08:00
parent 5cd28244fc
commit 3b1fb32e21
11 changed files with 81 additions and 88 deletions

View File

@@ -274,10 +274,6 @@ namespace Yitter.IdGenerator
if (_TurnBackTimeTick < 1) if (_TurnBackTimeTick < 1)
{ {
_TurnBackTimeTick = _LastTimeTick - 1; _TurnBackTimeTick = _LastTimeTick - 1;
#if DEBUG
BeginTurnBackAction(_TurnBackTimeTick);
#endif
}
_TurnBackIndex++; _TurnBackIndex++;
// 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序 // 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序
@@ -287,6 +283,11 @@ namespace Yitter.IdGenerator
_TurnBackIndex = 1; _TurnBackIndex = 1;
} }
#if DEBUG
BeginTurnBackAction(_TurnBackTimeTick);
#endif
}
//Thread.Sleep(1); //Thread.Sleep(1);
return CalcTurnBackId(_TurnBackTimeTick); return CalcTurnBackId(_TurnBackTimeTick);
} }

View File

@@ -26,9 +26,9 @@ static int64_t CalcTurnBackId(SnowFlakeWorker *worker);
static inline void EndOverCostAction(int64_t useTimeTick, SnowFlakeWorker *worker) { static inline void EndOverCostAction(int64_t useTimeTick, SnowFlakeWorker *worker) {
if (worker->_TermIndex > 10000) { // if (worker->_TermIndex > 10000) {
worker->_TermIndex = 0; // worker->_TermIndex = 0;
} // }
} }
static inline int64_t NextOverCostId(SnowFlakeWorker *worker) { static inline int64_t NextOverCostId(SnowFlakeWorker *worker) {
@@ -69,12 +69,13 @@ static inline int64_t NextNormalId(SnowFlakeWorker *worker) {
if (currentTimeTick < worker->_LastTimeTick) { if (currentTimeTick < worker->_LastTimeTick) {
if (worker->_TurnBackTimeTick < 1) { if (worker->_TurnBackTimeTick < 1) {
worker->_TurnBackTimeTick = worker->_LastTimeTick - 1; worker->_TurnBackTimeTick = worker->_LastTimeTick - 1;
}
worker->_TurnBackIndex++; worker->_TurnBackIndex++;
// 每毫秒序列数的前 5 位是预留位,0 用于手工新值,1-4 是时间回拨次序
// 支持 4 次回拨次序(避免回拨重叠导致 ID 重复),可无限次回拨(次序循环使用)。
if (worker->_TurnBackIndex > 4) { if (worker->_TurnBackIndex > 4) {
worker->_TurnBackIndex = 1; worker->_TurnBackIndex = 1;
} }
}
// usleep(1000); // 暂停1ms // usleep(1000); // 暂停1ms
return CalcTurnBackId(worker); return CalcTurnBackId(worker);

View File

@@ -170,15 +170,14 @@ func (m1 *SnowWorkerM1) NextNormalId() int64 {
if currentTimeTick < m1._LastTimeTick { if currentTimeTick < m1._LastTimeTick {
if m1._TurnBackTimeTick < 1 { if m1._TurnBackTimeTick < 1 {
m1._TurnBackTimeTick = m1._LastTimeTick - 1 m1._TurnBackTimeTick = m1._LastTimeTick - 1
m1.BeginTurnBackAction(m1._TurnBackTimeTick)
}
m1._TurnBackIndex++ m1._TurnBackIndex++
// 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序 // 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序
// 支持4次回拨次序(避免回拨重叠导致ID重复),可无限次回拨(次序循环使用)。 // 支持4次回拨次序(避免回拨重叠导致ID重复),可无限次回拨(次序循环使用)。
if m1._TurnBackIndex > 4 { if m1._TurnBackIndex > 4 {
m1._TurnBackIndex = 1 m1._TurnBackIndex = 1
} }
m1.BeginTurnBackAction(m1._TurnBackTimeTick)
}
// time.Sleep(time.Duration(1) * time.Millisecond) // time.Sleep(time.Duration(1) * time.Millisecond)
return m1.CalcTurnBackId(m1._TurnBackTimeTick) return m1.CalcTurnBackId(m1._TurnBackTimeTick)

View File

@@ -81,9 +81,9 @@ public class SnowWorkerM1 implements ISnowWorker {
} }
private void EndOverCostAction(long useTimeTick) { private void EndOverCostAction(long useTimeTick) {
if (_TermIndex > 10000) { // if (_TermIndex > 10000) {
_TermIndex = 0; // _TermIndex = 0;
} // }
} }
private void BeginTurnBackAction(long useTimeTick) { private void BeginTurnBackAction(long useTimeTick) {
@@ -141,15 +141,14 @@ public class SnowWorkerM1 implements ISnowWorker {
if (currentTimeTick < _LastTimeTick) { if (currentTimeTick < _LastTimeTick) {
if (_TurnBackTimeTick < 1) { if (_TurnBackTimeTick < 1) {
_TurnBackTimeTick = _LastTimeTick - 1; _TurnBackTimeTick = _LastTimeTick - 1;
BeginTurnBackAction(_TurnBackTimeTick);
}
_TurnBackIndex++; _TurnBackIndex++;
// 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序 // 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序
// 支持4次回拨次序(避免回拨重叠导致ID重复),可无限次回拨(次序循环使用)。 // 支持4次回拨次序(避免回拨重叠导致ID重复),可无限次回拨(次序循环使用)。
if (_TurnBackIndex > 4) { if (_TurnBackIndex > 4) {
_TurnBackIndex = 1; _TurnBackIndex = 1;
} }
//BeginTurnBackAction(_TurnBackTimeTick);
}
// try { // try {
// Thread.sleep(1); // Thread.sleep(1);

View File

@@ -136,15 +136,14 @@ class Genid {
if (currentTimeTick < this._LastTimeTick) { if (currentTimeTick < this._LastTimeTick) {
if (this._TurnBackTimeTick < 1) { if (this._TurnBackTimeTick < 1) {
this._TurnBackTimeTick = this._LastTimeTick - 1; this._TurnBackTimeTick = this._LastTimeTick - 1;
this.BeginTurnBackAction(this._TurnBackTimeTick);
}
this._TurnBackIndex++; this._TurnBackIndex++;
// 每毫秒序列数的前 5 位是预留位,0 用于手工新值,1-4 是时间回拨次序 // 每毫秒序列数的前 5 位是预留位,0 用于手工新值,1-4 是时间回拨次序
// 支持 4 次回拨次序(避免回拨重叠导致 ID 重复),可无限次回拨(次序循环使用)。 // 支持 4 次回拨次序(避免回拨重叠导致 ID 重复),可无限次回拨(次序循环使用)。
if (this._TurnBackIndex > 4) { if (this._TurnBackIndex > 4) {
this._TurnBackIndex = 1; this._TurnBackIndex = 1;
} }
this.BeginTurnBackAction(this._TurnBackTimeTick);
}
return this.CalcTurnBackId(this._TurnBackTimeTick); return this.CalcTurnBackId(this._TurnBackTimeTick);
} }

View File

@@ -178,13 +178,12 @@ static inline uint64_t NextNormalId(snowflake *flake)
if (flake->_TurnBackTimeTick < 1) if (flake->_TurnBackTimeTick < 1)
{ {
flake->_TurnBackTimeTick = flake->_LastTimeTick - 1; flake->_TurnBackTimeTick = flake->_LastTimeTick - 1;
}
flake->_TurnBackIndex++; flake->_TurnBackIndex++;
if (flake->_TurnBackIndex > 4) if (flake->_TurnBackIndex > 4)
{ {
flake->_TurnBackIndex = 1; flake->_TurnBackIndex = 1;
} }
}
return CalcTurnBackId(flake); return CalcTurnBackId(flake);
} }

View File

@@ -170,9 +170,9 @@ impl SnowWorkerM1 {
fn BeginOverCostAction(&self, useTimeTick: i64) {} fn BeginOverCostAction(&self, useTimeTick: i64) {}
fn EndOverCostAction(&mut self, useTimeTick: i64) { fn EndOverCostAction(&mut self, useTimeTick: i64) {
if self._TermIndex > 10000 { // if self._TermIndex > 10000 {
self._TermIndex = 0; // self._TermIndex = 0;
} // }
} }
fn BeginTurnBackAction(&self, useTimeTick: i64) {} fn BeginTurnBackAction(&self, useTimeTick: i64) {}
@@ -226,15 +226,14 @@ impl SnowWorkerM1 {
if currentTimeTick < self._LastTimeTick { if currentTimeTick < self._LastTimeTick {
if self._TurnBackTimeTick < 1 { if self._TurnBackTimeTick < 1 {
self._TurnBackTimeTick = self._LastTimeTick - 1; self._TurnBackTimeTick = self._LastTimeTick - 1;
self.BeginTurnBackAction(self._TurnBackTimeTick);
}
self._TurnBackIndex += 1; self._TurnBackIndex += 1;
// 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序 // 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序
// 支持4次回拨次序(避免回拨重叠导致ID重复),可无限次回拨(次序循环使用)。 // 支持4次回拨次序(避免回拨重叠导致ID重复),可无限次回拨(次序循环使用)。
if self._TurnBackIndex > 4 { if self._TurnBackIndex > 4 {
self._TurnBackIndex = 1; self._TurnBackIndex = 1;
} }
self.BeginTurnBackAction(self._TurnBackTimeTick);
}
// thread::sleep(std::time::Duration::from_millis(1)); // thread::sleep(std::time::Duration::from_millis(1));
return self.CalcTurnBackId(self._TurnBackTimeTick); return self.CalcTurnBackId(self._TurnBackTimeTick);

View File

@@ -243,14 +243,13 @@ export class snowflakeIdv1 {
if (currentTimeTick < this._LastTimeTick) { if (currentTimeTick < this._LastTimeTick) {
if (this._TurnBackTimeTick < 1) { if (this._TurnBackTimeTick < 1) {
this._TurnBackTimeTick = this._LastTimeTick - BigInt(1) this._TurnBackTimeTick = this._LastTimeTick - BigInt(1)
this.BeginTurnBackAction(this._TurnBackTimeTick)
}
this._TurnBackIndex++ this._TurnBackIndex++
// 每毫秒序列数的前 5 位是预留位,0 用于手工新值,1-4 是时间回拨次序 // 每毫秒序列数的前 5 位是预留位,0 用于手工新值,1-4 是时间回拨次序
// 支持 4 次回拨次序(避免回拨重叠导致 ID 重复),可无限次回拨(次序循环使用)。 // 支持 4 次回拨次序(避免回拨重叠导致 ID 重复),可无限次回拨(次序循环使用)。
if (this._TurnBackIndex > 4) if (this._TurnBackIndex > 4)
this._TurnBackIndex = 1 this._TurnBackIndex = 1
this.BeginTurnBackAction(this._TurnBackTimeTick)
}
return this.CalcTurnBackId(this._TurnBackTimeTick) return this.CalcTurnBackId(this._TurnBackTimeTick)
} }

View File

@@ -83,9 +83,9 @@ class SnowWorkerM1 : ISnowWorker {
} }
private void EndOverCostAction(long useTimeTick) { private void EndOverCostAction(long useTimeTick) {
if (_TermIndex > 10000) { //if (_TermIndex > 10000) {
_TermIndex = 0; // _TermIndex = 0;
} //}
} }
private void BeginTurnBackAction(long useTimeTick) { private void BeginTurnBackAction(long useTimeTick) {
@@ -143,16 +143,14 @@ class SnowWorkerM1 : ISnowWorker {
if (currentTimeTick < _LastTimeTick) { if (currentTimeTick < _LastTimeTick) {
if (_TurnBackTimeTick < 1) { if (_TurnBackTimeTick < 1) {
_TurnBackTimeTick = _LastTimeTick - 1; _TurnBackTimeTick = _LastTimeTick - 1;
BeginTurnBackAction(_TurnBackTimeTick);
}
_TurnBackIndex++; _TurnBackIndex++;
// 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序 // 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序
// 最多4次回拨(防止回拨重叠) // 最多4次回拨(防止回拨重叠)
if (_TurnBackIndex > 4) { if (_TurnBackIndex > 4) {
_TurnBackIndex = 1; _TurnBackIndex = 1;
} }
BeginTurnBackAction(_TurnBackTimeTick);
}
// try { // try {
// Thread.sleep(1); // Thread.sleep(1);

View File

@@ -130,15 +130,14 @@ fn (mut m1 SnowWorkerM1) next_normal_id() u64 {
if current_time_tick < m1.last_time_tick { if current_time_tick < m1.last_time_tick {
if m1.turn_back_timetick < 1 { if m1.turn_back_timetick < 1 {
m1.turn_back_timetick = m1.last_time_tick - 1 m1.turn_back_timetick = m1.last_time_tick - 1
// m1.begin_turn_back_action(m1.turn_back_timetick)
}
m1.turnback_index++ m1.turnback_index++
// 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序 // 每毫秒序列数的前5位是预留位,0用于手工新值,1-4是时间回拨次序
// 最多4次回拨(防止回拨重叠) // 最多4次回拨(防止回拨重叠)
if m1.turnback_index > 4 { if m1.turnback_index > 4 {
m1.turnback_index = 1 m1.turnback_index = 1
} }
// m1.begin_turn_back_action(m1.turn_back_timetick)
}
return m1.calc_turn_back_id() return m1.calc_turn_back_id()
} }