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?


+
Techy Teck 2013-11-19, 05:41
Copy link to this message
-
Re: How to watch for events on the descendant nodes in ZooKeeper using kazoo?
Can anyone help me with this? I am stuck on this problem..

Or if there any better python client for Zookeeper then please let me know
as well?
On Mon, Nov 18, 2013 at 9:41 PM, Techy Teck <[EMAIL PROTECTED]> wrote:

> 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)
>
+
Diego Oliveira 2013-11-19, 20:00
+
Techy Teck 2013-11-19, 20:23