NutzCN Logo
问答 zookeeper 使用zkclient的回调
发布于 2550天前 作者 tiankongkm 1822 次浏览 复制 上一个帖子 下一个帖子
标签:
public class ZKDataListener implements IZkDataListener {

	public void handleDataChange(String dataPath, Object data) throws Exception {  
        
        System.out.println(dataPath+":"+data.toString());  
    }  

    public void handleDataDeleted(String dataPath) throws Exception {  
          
        System.out.println(dataPath);  
          
    }  

}
public class ZkTest {

	public static void main(String[] args) throws InterruptedException {
		ZkClient zkClient = new ZkClient("127.0.0.1:2181");		
		zkClient.setZkSerializer(new MyZkSerializer());
		zkClient.subscribeDataChanges("/test", new ZKDataListener());
		zkClient.writeData("/test", 1);
		Thread.sleep(3000);
		zkClient.writeData("/test", 2);
		Thread.sleep(3000);
		zkClient.writeData("/test", 3);
		while(true) {}
	}

}

setdata以后不休眠的话,只会有一次回调,休眠正常回调三次。
大佬知道神马原因吗?

5 回复

亮了

while(true) {}

@wendal 这个是不想程序结束等不到通知,又不想写线程,,,所以偷了个小懒。。

Thread.sleep啊

@wendal 奥奥,有时候总是缺根筋。。 请问为啥么要休眠一段时间才会接收到通知呢。

cpu被吃完了吧

添加回复
请先登陆
回到顶部