/// <summary> /// ZooKeeper事件处理 /// </summary> /// <param name="watchedEvent">ZooKeeper事件</param> public void Process(WatchedEvent watchedEvent) { try { //结点更新时 if (watchedEvent.Type == EventType.NodeDataChanged) { CallBack(); } //结点断开连接,这时不要进行处理 if (watchedEvent.State == KeeperState.Disconnected) { //todo log } //session expired,需要重新关注哦 if (watchedEvent.State == KeeperState.Expired) { _zooKeeperClient.ReConnect(); CallBack(); } LogManager.GetLogger().Info(string.Format("DisconfClient.NodeWatcher,WatchedEvent:{0}", watchedEvent)); } catch (Exception ex) { LogManager.GetLogger().Info(string.Format("DisconfClient.NodeWatcher,WatchedEvent:{0},Exception:{1}", watchedEvent, ex)); } }
public static void ReConnect() { if (_client == null) { return; } lock (SyncRoot) { _client.ReConnect(); } }