1
0
mirror of synced 2026-02-26 06:47:58 +08:00
Files
SnowFlake-IdGenerator/D/source/yitter/contract/IdGeneratorOptions.d
BitWorld 7673c9f441 !7 D语言版本性能提升
* Better performace for D.
2021-04-09 16:13:19 +08:00

70 lines
1.7 KiB
D
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* 版权属于yitter(yitter@126.com)
* 开源地址https://gitee.com/yitter/idgenerator
*/
module yitter.contract.IdGeneratorOptions;
import std.datetime;
/**
* 雪花算法使用的参数
* 参数说明参考 README.md 配置参数 章节
*/
class IdGeneratorOptions {
/**
* 雪花计算方法
* 1-漂移算法|2-传统算法默认1
*/
short Method = 1;
/**
* 基础时间ms单位
* 不能超过当前系统时间
*/
long BaseTime = 1582136402000L;
/**
* 机器码
* 必须由外部设定最大值 2^WorkerIdBitLength-1
*/
short WorkerId = 0;
/**
* 机器码位长
* 默认值6取值范围 [1, 15]要求序列数位长+机器码位长不超过22
*/
byte WorkerIdBitLength = 6;
/**
* 序列数位长
* 默认值6取值范围 [3, 21]要求序列数位长+机器码位长不超过22
*/
byte SeqBitLength = 6;
/**
* 最大序列数
* 设置范围 [MinSeqNumber, 2^SeqBitLength-1]默认值0表示最大序列数取最大值2^SeqBitLength-1]
*/
short MaxSeqNumber = 0;
/**
* 最小序列数
* 默认值5取值范围 [5, MaxSeqNumber]每毫秒的前5个序列数对应编号是0-4是保留位其中1-4是时间回拨相应预留位0是手工新值预留位
*/
short MinSeqNumber = 5;
/**
* 最大漂移次数
* 默认2000推荐范围500-10000与计算能力有关
*/
short TopOverCostCount = 2000;
this() {
}
this(short workerId) {
WorkerId = workerId;
}
}