github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/data/id/snowid/idgenerator_options.go (about)

     1  package snowid
     2  
     3  // IdGeneratorOptions .
     4  type IdGeneratorOptions struct {
     5  	Method            uint16 // 雪花计算方法,(1-漂移算法|2-传统算法),默认1
     6  	BaseTime          int64  // 基础时间(ms单位),不能超过当前系统时间
     7  	WorkerId          uint16 // 机器码,与 WorkerIdBitLength 有关系
     8  	WorkerIdBitLength byte   // 机器码位长,范围:1-21(要求:序列数位长+机器码位长不超过22)
     9  	SeqBitLength      byte   // 序列数位长,范围:2-21(要求:序列数位长+机器码位长不超过22)
    10  	MaxSeqNumber      uint32 // 最大序列数(含),由SeqBitLength计算的最大值
    11  	MinSeqNumber      uint32 // 最小序列数(含),默认5,不小于1,不大于MaxSeqNumber
    12  	TopOverCostCount  uint32 // 最大漂移次数(含),默认2000,推荐范围500-10000(与计算能力有关)
    13  }
    14  
    15  // NewIdGeneratorOptions .
    16  func NewIdGeneratorOptions(workerID uint16) *IdGeneratorOptions {
    17  	return &IdGeneratorOptions{
    18  		Method:            1,
    19  		WorkerId:          workerID,
    20  		BaseTime:          1582136402000,
    21  		WorkerIdBitLength: 6,
    22  		SeqBitLength:      6,
    23  		MaxSeqNumber:      0,
    24  		MinSeqNumber:      5,
    25  		TopOverCostCount:  2000,
    26  	}
    27  }