Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

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


Copy link to this message
-
Re: How to watch for events on the descendant nodes in ZooKeeper using kazoo?
Thanks a lot Diego. Let me see whether I can put that example using the
basic approach or not.

By decorations approach you mean the approach I am doing currently right
like this? -

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

Above is called decoration approach?
On Tue, Nov 19, 2013 at 12:00 PM, Diego Oliveira <[EMAIL PROTECTED]> wrote:

> Hello Techy,
>
>    The decorations approach you are doing may not be the best way to handle
> your use case. I don't know very much about the python binding but I think
> you'll need to do the watch programmatically to achieve the what you are
> looking for.  Take a look in the kazzo basic usage:
>
> def my_func(event):
>     # check to see what the children are now
> # Call my_func when the children changechildren > zk.get_children("/my/favorite/node", watch=my_func)
>
>
>
>
>
>
>
>
> On Tue, Nov 19, 2013 at 3:33 PM, Techy Teck <[EMAIL PROTECTED]>
> wrote:
>
> > 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)
> > >
> >
>
>
>
> --
> Att.
> Diego de Oliveira
> System Architect
> [EMAIL PROTECTED]
> www.diegooliveira.com
> Never argue with a fool -- people might not be able to tell the difference
>
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB