version change
0.0.3 add get_children mapping kazoo
0.0.2 add ensure_path/exists mapping kazoo
0.0.1 fisrt version
ez_zk_client install
pip install ez_zk_client
example connect/disconnect
from ez_zk_client import ZkClient
client = ZkClient(hosts='localhost:2181')
client.connect()
client.disconnect()
example create_path
client.create_node('/pytest','for pytest')
example create_ephemeral & get value/status
client.alive('/pytest/online','create oneline path, offlne auto disapear')
val,stat = client.get_data('/pytest/online')
example listen node
def node_data_change(node_path, data):
print('data change:',data)
client.create_node("/testing/test_listener", 'old data')
client.add_node_listener("/testing/test_listener", node_data_change)
client.set_data("/testing/test_listener", "new data")
example listen children
def children_change(node_path,data):
print(data)
print(data)
client.ensure_path('/testing/listen_children')
client.add_children_listener('/testing/listen_children',children_change)
client.alive(f'/testing/listen_children/child1')
client.alive(f'/testing/listen_children/child2')
example lock single resource
client.alive("/testing/single_resource/ALIVE", 'http://localhost:3388')
locker = client.lock_single_resource("/testing/single_resource/ALIVE")
with locker:
api,stat = client.get_data(locker.path)
example lock pool resource
inserted_path = client.insert_pool_resource('/testing/resource_pool', 'http://localhost:10001')
inserted_path = client.insert_pool_resource('/testing/resource_pool', 'http://localhost:10002')
inserted_path = client.insert_pool_resource('/testing/resource_pool', 'http://localhost:10003')
locker1 = client.use_pool_resource('/testing/resource_pool')
api1,stat = client.get_data(locker.path)
locker2 = client.use_pool_resource('/testing/resource_pool')
api2,stat = client.get_data(locker.path)
locker3 = client.use_pool_resource('/testing/resource_pool')
api3,stat = client.get_data(locker.path)