fix the bug that old uuid may be generated sometimes

This commit is contained in:
MaysWind
2023-09-16 23:53:45 +08:00
parent 165377816c
commit 04ec749c3c
+4 -1
View File
@@ -77,10 +77,13 @@ func (u *InternalUuidGenerator) GenerateUuids(idType UuidType, count uint8) []in
for { for {
unixTime = uint64(time.Now().Unix()) unixTime = uint64(time.Now().Unix())
newLastSeqId = u.uuidSeqNumbers[uuidType].Add(uint64(count)) newLastSeqId = u.uuidSeqNumbers[uuidType].Add(uint64(count))
newSeqUnixTime := newLastSeqId >> seqNumberIdBits
if newLastSeqId>>seqNumberIdBits == unixTime { if unixTime == newSeqUnixTime {
newFirstSeqId = newLastSeqId - uint64(count-1) newFirstSeqId = newLastSeqId - uint64(count-1)
break break
} else if unixTime < newSeqUnixTime {
continue
} }
currentSeqId := newLastSeqId currentSeqId := newLastSeqId