add: id register
This commit is contained in:
@@ -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-1,若 WorkerId 超过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-1,若 worker_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函数,使该线程退出,不过这需要等待几秒钟。
|
||||
|
||||
Reference in New Issue
Block a user