WHen does handleWatchEvents get called()? In your sample code the method is defined but its not called from your main() function.
On Sat, Nov 9, 2013 at 7:56 AM, Techy Teck <[email protected]> wrote: > > On Fri, Nov 8, 2013 at 12:31 PM, Cameron McKenzie > <[email protected]>wrote: > >> client.getCuratorListenable().addListener(new CuratorListener() { >> public void eventReceived(CuratorFramework curator, CuratorEvent >> event) { >> //Your event handling code here. >> } >> }); >> > > > Thanks Cameron and Jordan for the suggestion.. I am also using the same > code in my simple test program but one thing that I am not able to > understand is - My client program should always be running to detect any > trigger happening because of any watches on the parent node right? > Currently, I am running my simple Java static void main code which gets the > children and has the watch code as well - Something like below is my full > program- > > public class ZKWatcher { > > public static void main(String[] args) { > > try { > CuratorFramework client = > CuratorClient.createSimple("localhost:2181"); > client.start(); > > List<String> children = watchedGetChildren(client, "/foo"); > > } catch (Exception ex) { > ex.printStackTrace(); > } > } > > public static List<String> watchedGetChildren(CuratorFramework client, > String path) throws Exception { > > return client.getChildren().watched().forPath(path); > } > > public static void handleWatchEvents(CuratorFramework client, String > path, byte[] payload) throws Exception { > // this is one method of getting event/async notifications > CuratorListener listener = new CuratorListener() { > public void eventReceived(CuratorFramework client, > CuratorEvent event) throws Exception { > // examine event for details > > System.out.println("Hello World"); > } > }; > client.getCuratorListenable().addListener(listener); > } > } > > I run the above program as the simple java application and it gets all the > children from the */foo* parent node but the above program gets stopped > after getting the children. So I am wondering if I am adding any child node > to the same */foo* parent node behind the scene using zkCli, then > eventReceived won't get called for sure as my program was stopped.. > > Which makes me to think, I need to run my above program as some sort of > server way so that it will keep on running once we start it and then if any > trigger is happening because of addition of any child nodes to /foo parent > node then eventReceived will get called automatically? > > if yes, then how to do that? Pardon my ignorance on this. > > > >
