Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Plain View
Zookeeper >> mail # user >> How to watch for events on the descendant nodes in ZooKeeper using kazoo?


Copy link to this message
-
How to watch for events on the descendant nodes in ZooKeeper using kazoo?
I recently started working with Python for Zookeeper. I am using `kazoo`
library for Zookeeper. I need to keep a watch on my root node which is -

    /my/example

couple of other nodes which might get added to my above root node will be
like this -

    /my/example/workflow
    /my/example/workflow/v1
    /my/example/workflow/v1/step1
    /my/example/workflow/v1/step2
Now I need to check whether the children which got added in root node
`/my/example` is `/my/example/workflow` or not. If `workflow` node gets
added up in `/my/example` then I will keep a watch on
`/my/example/workflow` node only and if any new children gets added up in
`/my/example/workflow` node then I need to keep a watch on that node as
well.

Let's say, children of `/my/example/workflow` is `/my/example/workflow/v1`,
so now I need to keep a watch on `/my/example/workflow/v1` and then if any
new nodes gets added up on this node `/my/example/workflow/v1` such as
`/my/example/workflow/v1/step1` and `/my/example/workflow/v1/step2` then I
need to print the children of `/my/example/workflow/v1` node and I won't
make any new watches now.

Now I am not sure how to keep on calling watches on my children until
certain point, here in this case till `/my/example/workflow/v1` I need to
keep on watching and as soon as all the steps nodes gets added up, I need
to print the children of `/my/example/workflow/v1`. Below is my code which
works fine for watching on only one root node and now I am not sure how to
do my above problem?
    #!/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)
Any help is really appreciated on this. I was following the documentation
by reading the kazoo tutorial from [here](
http://kazoo.readthedocs.org/en/latest/basic_usage.html#watchers)
+
Techy Teck 2013-11-19, 17:33
+
Diego Oliveira 2013-11-19, 20:00
+
Techy Teck 2013-11-19, 20:23