用于Elasticsearch的持久序列生成器
项目描述
使用Elasticsearch创建ID批次的整数ID生成器。Elasticsearch无法为新创建的文档创建整数ID。此软件包帮助在分布式系统中创建唯一的整数ID。
功能
确保多个进程能够创建唯一的ID
通过单个Elasticsearch请求请求多个ID进行优化
Elasticsearch设置
必须将序列分配给Elasticsearch客户端实例
>>> from elasticsearch import Elasticsearch >>> es_client = Elasticsearch(['localhost:%s' % crate_port])
要将客户端全局分配给应用程序中的所有序列,可以将客户端分配给类属性ES
>>> from lovely.essequence import Sequence >>> Sequence.ES = es_client
用法
存在一个Sequence类
>>> from lovely.essequence import Sequence
必须使用序列名称实例化它
>>> s1 = Sequence('s1')
现在可以请求iids
>>> s1.next() 1 >>> s1.next() 2
对于同一序列名称的多个序列实例使用相同的批量
>>> s2 = Sequence('s1', bulk_size=100) >>> s2.next() 3
当批量大小被消耗后,请求下一个批量的操作在next方法内透明处理:: 从s1消耗所有缓存的ID
>>> for i in range(10): s1.next() 4 5 6 7 8 9 10 11 12 13
可以使用多个独立的序列
>>> other = Sequence('other') >>> other.next() 1
转换提供的iid
可以在调用next时提供一个转换函数,将提供的整数值转换成其他值
>>> asstring = Sequence('other', transform=str) >>> isinstance(asstring.next(), str) True >>> def transformer(iid): ... return {'iid': iid} >>> Sequence('other', transform=transformer).next() {'iid': 3}
重置序列
出于测试目的,可以重置序列。
项目详情
关闭
lovely.essequence-0.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 46ef85f3c8d03cc6374ff48d4307d85c3d72cc6be78fd7ef4efa1fb399ef247d |
|
MD5 | 3c8c855154ed92ff1d97a9cd049a2c01 |
|
BLAKE2b-256 | e80f3f78bf140b3f8d5b2f299b7454540bd3d76b2c9dcde4884ebaffc3343ae7 |