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.3 kB

3 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # ❄ idgenerator-Python
  2. ## 运行环境
  3. Python 3.6+
  4. ## 引用 包
  5. ## 调用示例
  6. ​ 调用方法如下,其中worker_id为一个全局唯一的数字。
  7. ```python
  8. # 导入包
  9. from source import options, generator
  10. # 声明id生成器参数,需要自己构建一个worker_id
  11. options = options.IdGeneratorOptions(worker_id=23)
  12. # 参数中,worker_id_bit_length 默认值6,支持的 worker_id 最大值为2^6-1,若 worker_id 超过64,可设置更大的 worker_id_bit_length
  13. idgen = generator.DefaultIdGenerator()
  14. # 保存参数
  15. idgen.set_id_generator(options)
  16. # 生成id
  17. uid = idgen.next_id()
  18. # 打印出来查看
  19. print("%d, %x" % (uid,uid))
  20. ```
  21. ​ 包里面也提供了一个基于redis的worker id注册器,使用方法如下:
  22. ```python
  23. from source import idregister
  24. # 声明注册器,提供redis地址
  25. register = idregister.Register(host="127.0.0.1", port=6379, max_worker_id=100)
  26. # 获取worker id
  27. worker_id = register.get_worker_id()
  28. # 打印出来查看
  29. print(worker_id)
  30. # 程序退出的时候调用一次stop
  31. register.stop()
  32. ```
  33. ​ 需要注意,注册器会启动一个线程,每隔一定时间向redis续期worker id,可以在最后退出程序的时候调用一次stop函数,使该线程退出,不过这需要等待几秒钟。