Curator之PathChildrenCache子节点监听

£神魔★判官ぃ 2022-05-13 14:10 352阅读 0赞

Curator之PathChildrenCache子节点监听:

  1. /*子节点监听*/
  2. //子节点添加watcher
  3. //PathChildrenCache:监听数据节点的增删改,会触发事件
  4. String childNodePathCache = nodePath;
  5. //childData:设置缓存节点的数据状态
  6. final PathChildrenCache childrenCache = new PathChildrenCache(cto.client,childNodePathCache,true);
  7. /*
  8. * StartMode:初始化方式
  9. * POST_INITIALIZED_EVENT:异步初始化。初始化后会触发事件
  10. * NORMAL:异步初始化
  11. * BUILD_INITIAL_CACHE:同步初始化
  12. * */
  13. childrenCache.start(PathChildrenCache.StartMode.POST_INITIALIZED_EVENT);
  14. List<ChildData> childDataList = childrenCache.getCurrentData();
  15. System.out.println("当前数据节点的子节点数据列表:");
  16. for(ChildData cd : childDataList){
  17. String childData = new String(cd.getData());
  18. System.out.println(childData);
  19. }
  20. childrenCache.getListenable().addListener(new PathChildrenCacheListener() {
  21. public void childEvent(CuratorFramework ient, PathChildrenCacheEvent event) throws Exception {
  22. if(event.getType().equals(PathChildrenCacheEvent.Type.INITIALIZED)){
  23. System.out.println("子节点初始化成功");
  24. }else if(event.getType().equals(PathChildrenCacheEvent.Type.CHILD_ADDED)){
  25. System.out.println("添加子节点路径:"+event.getData().getPath());
  26. System.out.println("子节点数据:"+new String(event.getData().getData()));
  27. }else if(event.getType().equals(PathChildrenCacheEvent.Type.CHILD_REMOVED)){
  28. System.out.println("删除子节点:"+event.getData().getPath());
  29. }else if(event.getType().equals(PathChildrenCacheEvent.Type.CHILD_UPDATED)){
  30. System.out.println("修改子节点路径:"+event.getData().getPath());
  31. System.out.println("修改子节点数据:"+new String(event.getData().getData()));
  32. }
  33. }
  34. });

在这里插入图片描述在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,352人围观)

还没有评论,来说两句吧...

相关阅读