这篇介绍的内容watch的使用,我们知道zookeeper有一个watch机制,可以监听节点上发生的事件,在zkpython中,我们通过如下方式来进行监听.
比如我们在获取一个节点的时候,给这个节点加一个监听器,具体的代码是:
import zookeeper;
def myWatch(handler,type,state,path):
print "handler:"+str(handler)+",type:"+str(type)+",state:"+str(state)+",path:"+path;
zookeeper.get(handler,path,myWatch);#保证可以被重复监听
handler = zookeeper.init("localhost:2181");
data = zookeeper.get(handler,"/zkpython_node",myWatch);
首先,我们先要定义一个watch方法,比如这里的myWatch方法,之后在调用get方法的时候,把这个watch传递进去就可以了
接下来详细解释下watcher中的各个参数的意思
handler:就是我们创建连接之后的返回值,我试了下,发现好像指的是连接的一个索引值,以0开始
type:事件类型,-1表示没有事件发生,1表示创建节点,2表示节点删除,3表示节点数据被改变,4表示子节点发生变化
state:客户端的状态,0:断开连接状态,3:正常连接的状态,4认证失败,-112:过期啦
path:这个状态就不用解释了,znode的路径
最后修改于 2012-08-07 16:58
阅读(?)评论(0)