如何使用kazoo观察Python中的后代子节点?
发布时间:2020-12-20 13:38:33 所属栏目:Python 来源:网络整理
导读:我最近开始使用 Python for Zookeeper.我正在为Zookeeper使用kazoo库. 我有一个非常简单的用例,使用kazoo for Zookeeper.我有一个根节点是 – / root.现在我需要监视根节点/ root,如果添加到根节点/ root的新节点是/ root / testing,那么我只会监视/ root /
我最近开始使用
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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |