You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 1.6 kB

2 years ago
2 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # ❄ idgenerator-Delphi (Pascal)
  2. ## 编译环境、运行环境
  3. Delphi XE10.3.3
  4. ## 调用示例(Delphi)
  5. 第1步,**全局**初始化(创建只执行一次):
  6. ```objectpascal
  7. // 添加引用
  8. uses uIdGeneratorOptions, uIIdGenerator, uDefaultIdGenerator, uYitIdHelper;
  9. // 声明IdGeneratorOptions、YitIdHelper对象为全局变量
  10. var
  11. IdGeneratorOption: TIdGeneratorOptions;
  12. YitIdHelper: TYitIdHelper;
  13. // 创建并配置雪花算法参数:
  14. begin
  15. IdGeneratorOption := TIdGeneratorOptions.Create;
  16. // 参数参考IdGeneratorOptions定义。
  17. with IdGeneratorOptiondo
  18. begin
  19. //以下全部为默认参数
  20. Method := 1;
  21. // BaseTime := DateTime.Now.AddYears(-10);
  22. WorkerId := 1;
  23. WorkerIdBitLength := 6;
  24. SeqBitLength := 6;
  25. MaxSeqNumber := 0;
  26. MinSeqNumber := 5;
  27. TopOverCostCount := 2000;
  28. DataCenterId := 0;
  29. DataCenterIdBitLength := 0;
  30. TimestampType := 0;
  31. end;
  32. YitIdHelper := TYitIdHelper.Create;
  33. // 保存参数(务必调用,否则参数设置不生效):
  34. YitIdHelper.SetIdGenerator(options);
  35. // 以上过程只需全局一次,且应在生成Id之前完成。
  36. end;
  37. ```
  38. 第2步,生成ID:
  39. ```objectpascal
  40. // 初始化后,在任何需要生成Id的地方,调用以下方法:
  41. var Id: Int64 := YitIdHelper.NextId();
  42. ```
  43. 第3步,释放内存(销毁只执行一次):
  44. ```objectpascal
  45. YitIdHelper.Free;
  46. IdGeneratorOption.Free;
  47. ```
  48. ## 代码贡献者
  49. 塵封追憶(Delphi-asdf, 82257695)