diff --git a/pkg/uuid/internal_generator.go b/pkg/uuid/internal_generator.go index 4eb1f39b..fa3bb966 100644 --- a/pkg/uuid/internal_generator.go +++ b/pkg/uuid/internal_generator.go @@ -77,10 +77,13 @@ func (u *InternalUuidGenerator) GenerateUuids(idType UuidType, count uint8) []in for { unixTime = uint64(time.Now().Unix()) newLastSeqId = u.uuidSeqNumbers[uuidType].Add(uint64(count)) + newSeqUnixTime := newLastSeqId >> seqNumberIdBits - if newLastSeqId>>seqNumberIdBits == unixTime { + if unixTime == newSeqUnixTime { newFirstSeqId = newLastSeqId - uint64(count-1) break + } else if unixTime < newSeqUnixTime { + continue } currentSeqId := newLastSeqId