如何使用kazoo观察Python中的后代子节点?
作者:互联网
我最近开始使用Python for Zookeeper.我正在为Zookeeper使用kazoo库.
我有一个非常简单的用例,使用kazoo for Zookeeper.我有一个根节点是 – / root.现在我需要监视根节点/ root,如果添加到根节点/ root的新节点是/ root / testing,那么我只会监视/ root / testing节点.我不想在测试节点之外的任何其他节点上监视.然后,如果任何新的孩子被添加到/ root / testing节点,那么我也会密切注意它们.
让我们说下面的孩子加起来 –
`/root/testing/test1`
然后我也会关注test1节点.
这可以在Zookeeper中使用Kazoo吗?我只能使用以下代码在一个Zookeeper节点(/ root)上监视:
#!/usr/bin/python
import time
from kazoo.client import KazooClient
zk = KazooClient(hosts='127.0.0.1:2181')
zk.start()
########################################
@zk.ChildrenWatch("/root/testing")
def watch_children(children):
print(children)
########################################
while True:
time.sleep(5)
在子节点上制作多个手表可以帮助我吗?
解决方法:
尝试这样的事情.
import time
from kazoo.client import KazooClient
zk = KazooClient(hosts='127.0.0.1:2181')
zk.start()
children = zk.get_children("/root/",)
if "/testing" in children:
children_testing = zk.get_children("/root/testing/")
if children_testing != []:
@zk.ChildrenWatch("/root/testing")
def watch_children(children):
print(children)
else:
@zk.ChildrenWatch("/root/")
def watch_children(children):
print(children)
while True:
time.sleep(5)
标签:python,watch,apache-zookeeper,kazoo 来源: https://codeday.me/bug/20190708/1407288.html