1
0
mirror of synced 2026-04-22 00:08:40 +08:00

add: id register

This commit is contained in:
koukouchan
2022-08-24 21:34:09 +08:00
parent 9ab60d7cce
commit 27caa402d4
12 changed files with 423 additions and 211 deletions

View File

@@ -1,4 +1,4 @@
# ❄ idgenerator-Python
# ❄ idgenerator-Python
## 运行环境
@@ -9,18 +9,35 @@ Python 3.6+
## 调用示例
调用方法如下其中worker_id为一个全局唯一的数字。
```python
# 导入包
from source import Options,Generator
# 声明id生成器参数需要自己构建一个workerId
options = Options.IdGeneratorOptions(workerId=23)
# 参数中,WorkerIdBitLength 默认值6支持的 WorkerId 最大值为2^6-1WorkerId 超过64可设置更大的 WorkerIdBitLength
idgen = Generator.DefaultIdGenerator()
from source import options, generator
# 声明id生成器参数需要自己构建一个worker_id
options = options.IdGeneratorOptions(worker_id=23)
# 参数中,worker_id_bit_length 默认值6支持的 worker_id 最大值为2^6-1worker_id 超过64可设置更大的 worker_id_bit_length
idgen = generator.DefaultIdGenerator()
# 保存参数
idgen.SetIdGernerator(options)
idgen.set_id_generator(options)
# 生成id
uid = idgen.NextId()
uid = idgen.next_id()
# 打印出来查看
print("%d, %x" % (uid,uid))
```
包里面也提供了一个基于redis的worker id注册器使用方法如下
```python
from source import idregister
# 声明注册器提供redis地址
register = idregister.Register(host="127.0.0.1", port=6379, max_worker_id=100)
# 获取worker id
worker_id = register.get_worker_id()
# 打印出来查看
print(worker_id)
# 程序退出的时候调用一次stop
register.stop()
```
需要注意注册器会启动一个线程每隔一定时间向redis续期worker id可以在最后退出程序的时候调用一次stop函数使该线程退出不过这需要等待几秒钟。