ServiceDiscovery has its own listener: ServiceCacheListener - use that.

-Jordan



On April 21, 2015 at 1:17:10 PM, Arbi Akhina ([email protected]) wrote:

I'm using Apache Curator for service discovery, and PathChildrenCache to listen 
for events when a service is added/updated/deleted.


PathChildrenCache pathCache = new PathChildrenCache(client, "/directory", true);
pathCache.getListenable().addListener(new PathChildrenCacheListener() {
  @Override
  public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) 
throws Exception {
    if(event.getType() == PathChildrenCacheEvent.Type.CHILD_ADDED) {
      System.out.println("Added");
    }else if(event.getType() == PathChildrenCacheEvent.Type.CHILD_UPDATED) {
      System.out.println("Updated");
    }else if(event.getType() == PathChildrenCacheEvent.Type.CHILD_REMOVED) {
      System.out.println("Removed");
    }
  }
}
pathCache.start();
When I register a service through 
org.apache.curator.x.discovery.ServiceDiscovery, I got an added event. But when 
I un-register a service I don't get the removed event.

How I could properly listen to service events?


Reply via email to