Python 如何使用kazoo在ZooKeeper中监视子代节点上的事件?

Python 如何使用kazoo在ZooKeeper中监视子代节点上的事件?,python,apache-zookeeper,watch,kazoo,Python,Apache Zookeeper,Watch,Kazoo,我最近开始为Zookeeper使用Python。我正在为动物园管理员使用kazoo库。我需要监视我的根节点,它是- /my/example 可能会添加到我上面的根节点的两个其他节点如下- /my/example/workflow /my/example/workflow/v1 /my/example/workflow/v1/step1 /my/example/workflow/v1/step2 现在我需要检查添加到根节点/my/example中的子节点是否为/my/example/workf

我最近开始为Zookeeper使用Python。我正在为动物园管理员使用
kazoo
库。我需要监视我的根节点,它是-

/my/example
可能会添加到我上面的根节点的两个其他节点如下-

/my/example/workflow
/my/example/workflow/v1
/my/example/workflow/v1/step1
/my/example/workflow/v1/step2
现在我需要检查添加到根节点
/my/example
中的子节点是否为
/my/example/workflow
。如果
工作流
节点添加到
/my/example
中,则我将仅监视
/my/example/workflow
节点,如果在
/my/example/workflow
节点中添加任何新的子节点,则我也需要监视该节点

比如说,
/my/example/workflow
的子级是
/my/example/workflow/v1
,因此,现在我需要监视
/my/example/workflow/v1
,然后如果此节点上添加了任何新节点
/my/example/workflow/v1
,例如
/my/example/workflow/v1/step1
/my/example/workflow/v1/step2
,那么我需要打印
/my/example/workflow/v1
节点的子节点,我不会打印现在就做新手表

现在,我不知道如何在某一点之前继续对我的孩子们调用watchs,在本例中,直到
/my/example/workflow/v1
我需要继续监视,一旦所有步骤节点都累加起来,我需要打印
/my/example/workflow/v1
的孩子们。下面是我的代码,它只在一个根节点上运行良好,现在我不知道如何解决上述问题

#!/usr/bin/python
from kazoo.client import KazooClient

zk = KazooClient(hosts='127.0.0.1:2181')
zk.start()

@zk.ChildrenWatch("/my/example")
def watch_children(children):
    print("Children are now: %s" % children)

在此方面,我们非常感谢您的帮助。我在阅读kazoo教程时遵循了文档的要求,请尝试以下内容:

import time
from kazoo.client import KazooClient

zk = KazooClient(hosts='127.0.0.1:2181')
zk.start()



children = zk.get_children("/my/example/")
if "/workflow" in children:
    children_testing = zk.get_children("/my/example/testing/")
        if children_testing != []: 
            @zk.ChildrenWatch("/my/example/testing")
            def watch_children(children):
                print(children)
        else:
            @zk.ChildrenWatch("/my/example/")
            def watch_children(children):
            print(children)
while True:
    time.sleep(5)