zoukankan      html  css  js  c++  java
  • 服务端处理 Watcher 实现 ?

     

    1、服务端接收 Watcher 并存储 

    接收到客户端请求处理请求判断是否需要注册 Watcher,需要的话将数据节点 

    的节点路径和 ServerCnxn(ServerCnxn 代表一个客户端和服务端的连接实现 

     Watcher  process 接口此时可以看成一个 Watcher 对象存储在 

    WatcherManager  WatchTable  watch2Paths 中去

    2、Watcher 触发 

    以服务端接收到 setData() 事务请求触发 NodeDataChanged 事件为例

    2.1 封装 WatchedEvent

    将通知状态(SyncConnected)、事件类型(NodeDataChanged)以及节点路 

    径封装成一个 WatchedEvent 对象 

    2.2 查询 Watcher

     WatchTable 中根据节点路径查找 Watcher

    2.3 没找到说明没有客户端在该数据节点上注册过 Watcher

    2.4 找到提取并从 WatchTable  Watch2Paths 中删除对应 Watcher(从这里 

    可以看出 Watcher 在服务端是一次性的触发一次就失效了

    3、调用 process 方法来触发 Watcher

    这里 process 主要就是通过 ServerCnxn 对应的 TCP 连接发送 Watcher 事件通知

    Java Program!
  • 相关阅读:
    关于带权并查集
    Connections in Galaxy War ZOJ
    Supermarket POJ
    并查集判树 poj 1308
    最长异或值路径【字典树应用】
    最大异或对
    trie字典树【模板题】
    UVA536 二叉树重建 Tree Recovery
    UVA1584环状序列 Circular Sequence
    【CodeForces 622F】The Sum of the k-th Powers
  • 原文地址:https://www.cnblogs.com/programb/p/13005160.html
Copyright © 2011-2022 走看看