9.使用GetData,Children实现对ZNode的监控
public class DataWatcher: IWatcher
{
private ZooKeeper _zookeeper = null;
Action<WatchedEvent, string> _action = null; public DataWatcher(ZooKeeper zookeeper, Action<WatchedEvent, string> action)
{
_zookeeper = zookeeper;
_action = action;
} public void Process(WatchedEvent @event)
{
try
{
//Console.WriteLine("path={0},state={1},type={2}", @event.Path, @event.State, @event.Type);
//通过getdata获取内容
var content = Encoding.UTF8.GetString(_zookeeper.GetData(@event.Path, this, null));
if (_action != null)
{
_action(@event, content);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
Console.WriteLine("欢迎来到zookeeper.net 9 ");
try
{
var bytes = zookeeper.GetData("/google", new DataWatcher(zookeeper, (e, data) =>
{
//data 是返回的内容
Console.WriteLine("path={0},state={1},type={2},data={3}", e.Path, e.State, e.Type, data);
}), null);
}
catch (KeeperException ex)
{
throw new Exception(ex.Message);
}
public class ChildrenWatcher : IWatcher
{
private ZooKeeper _zookeeper = null;
Action<WatchedEvent, IEnumerable<string>> _action = null; public ChildrenWatcher(ZooKeeper zookeeper, Action<WatchedEvent, IEnumerable<string>> action)
{
_zookeeper = zookeeper;
_action = action;
} public void Process(WatchedEvent @event)
{
try
{
//通过getdata获取内容
var list = _zookeeper.GetChildren(@event.Path, this, null);
if (_action != null)
{
_action(@event, list);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
} }
try
{
var list_t = zookeeper.GetChildren("/google", new ChildrenWatcher(zookeeper, (e, data) =>
{
Console.WriteLine("path={0},state={1},type={2},data={3}", e.Path, e.State, e.Type, string.Join(",", data));
}), null); }
catch (KeeperException ex)
{
throw new Exception(ex.Message);
}
执行创建,删除后的效果


9.使用GetData,Children实现对ZNode的监控的更多相关文章
- zabbix实现对tomcat的监控
zabbix实现对tomcat的监控 工作原理 比如:当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix- ...
- 基于DevExpress实现对PDF、Word、Excel文档的预览及操作处理
http://www.cnblogs.com/wuhuacong/p/4175266.html 在一般的管理系统模块里面,越来越多的设计到一些常用文档的上传保存操作,其中如PDF.Word.Excel ...
- C#代码实现对HTTP POST参数进行排序
private static string GetSortedParas(Dictionary<string, string> dic) { dic = dic.OrderBy(key = ...
- 在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
from:http://m.blog.csdn.net/article/details?id=51075023 在VS2015中先创建C#项目,然后再创建要编写的动态库DLL项目,这样做的好处是整个解 ...
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- struts2视频学习笔记 22-23(基于XML配置方式实现对action的所有方法及部分方法进行校验)
课时22 基于XML配置方式实现对action的所有方法进行校验 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类 ...
- 用 Python 脚本实现对 Linux 服务器的监控
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...
- 在应用程序中实现对NandFlash的操作
以TC58NVG2S3ETA00 为例: 下面是它的一些物理参数: 图一 图二 图三 图四 图五 图6-0 图6-1 说明一下,在图6-1中中间的那个布局表可以看做是实际的NandFlash一页数据的 ...
随机推荐
- postman-2get发送请求
文档地址:https://www.v2ex.com/p/7v9TEc53 第一个API请求 最热主题 相当于首页右侧的 10 大每天的内容. https://www.v2ex.com/api/topi ...
- OpenCL 前缀和
▶ 向量前缀和 ● 最简单的版本,代码 #include <stdio.h> #include <stdlib.h> #include <cl.h> const c ...
- Snackbar学习笔记
官方推荐使用Snackbar代替Toast Paste_Image.png Snackbar使用其实就是一句话,跟toast很相似: Snackbar.make(view,"消息已发出& ...
- leetcode532
public class Solution { public int FindPairs(int[] nums, int k) { var pair = new Dictionary<strin ...
- ICaptureGraphBuilder2::RenderStream 智能连接方法浅析
ICaptureGraphBuilder2::RenderStream HRESULT RenderStream( [in] const GUID *pCategory, [in] const GUI ...
- Eclipse开启或取消快速导航栏(toggle breadcrumb)
在Eclipse中快速调出导航栏 关闭导航栏: 在视图的设置中,去掉breadcrum的勾选状态
- 初步认识cookie
cookie是由服务器创建,客户端读取及保存它的 同类请求指的是资源路径相同 Cookie的默认路径绑定是所请求的资源路径绑定的 ,指定路径时必须要有项目名称(说明是哪个项目) 使用cookie时还要 ...
- 经典的图像匹配算法----SIFT
经典的图像匹配算法----SIFT http://mp.weixin.qq.com/s?__biz=MzIzNDM2OTMzOQ==&mid=2247484319&idx=1& ...
- python之time&datetime
[time] secs:统一值,无local.UTC之分. struct_time:有local.UTC之分. time.time():返回secs,secs为统一值,无local&utc之分 ...
- Android中asset文件夹与raw文件夹的区别深入解析(转)
*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制.*res/raw和assets的不同点:1.res/raw中的文件会被映射到R.j ...