List of usage examples for org.apache.zookeeper WatchedEvent getType
public EventType getType()
From source file:com.alibaba.otter.shared.common.utils.zookeeper.ZkClientx.java
License:Apache License
private void processDataOrChildChange(WatchedEvent event) { final String path = event.getPath(); if (event.getType() == EventType.NodeChildrenChanged || event.getType() == EventType.NodeCreated || event.getType() == EventType.NodeDeleted) { Set<IZkChildListener> childListeners = _childListener.get(path); if (childListeners != null && !childListeners.isEmpty()) { fireChildChangedEvents(path, childListeners); }//from w ww . j a v a 2 s .co m } if (event.getType() == EventType.NodeDataChanged || event.getType() == EventType.NodeDeleted || event.getType() == EventType.NodeCreated) { Set<IZkDataListener> listeners = _dataListener.get(path); if (listeners != null && !listeners.isEmpty()) { fireDataChangedEvents(event.getPath(), listeners); } } }
From source file:com.alibaba.wasp.zookeeper.ZooKeeperWatcher.java
License:Apache License
/** * Method called from ZooKeeper for events and connection status. * <p>//w w w.j a v a 2 s .co m * Valid events are passed along to listeners. Connection status changes are * dealt with locally. */ @Override public void process(WatchedEvent event) { LOG.debug(prefix("Received ZooKeeper Event, " + "type=" + event.getType() + ", " + "state=" + event.getState() + ", " + "path=" + event.getPath())); switch (event.getType()) { // If event type is NONE, this is a connection status change case None: { connectionEvent(event); break; } // Otherwise pass along to the listeners case NodeCreated: { for (ZooKeeperListener listener : listeners) { listener.nodeCreated(event.getPath()); } break; } case NodeDeleted: { for (ZooKeeperListener listener : listeners) { listener.nodeDeleted(event.getPath()); } break; } case NodeDataChanged: { for (ZooKeeperListener listener : listeners) { listener.nodeDataChanged(event.getPath()); } break; } case NodeChildrenChanged: { for (ZooKeeperListener listener : listeners) { listener.nodeChildrenChanged(event.getPath()); } break; } } }
From source file:com.amazonaws.services.kinesis.stormspout.state.zookeeper.ZookeeperStateManager.java
License:Open Source License
@Override public synchronized void process(WatchedEvent event) { checkState(active, "Cannot process events if state is not active (a ZK" + " connection is necessary)."); // Re-hook the watcher. // Ordering the statements this way will ensure that no ZK shardList update is missed. // Since bootstrapStateFromZookeeper does its own getShardList(null) call, and the // call is after the re-hook, then any modification made in between the time the process() // function is called and the re-hook is made is captured by bootstrapStateFromZookeeper. // Note that this could end up in multiple calls being made for the same shardList update. try {/* w w w.ja v a 2 s . c om*/ zk.watchShardList(this); } catch (Exception e) { // Failure is fatal for the task (and it's been retried, so it's indicative of a // bigger Zookeeper/global state issue). LOG.error(this + " failure to re-attach event handler for ZK node " + event.getPath(), e); throw new KinesisSpoutException(e); } // If we are handling a shardList modification, then most probably another task handled // a reshard, and we need to sync with the state in ZK. if (event.getType() == EventType.NodeDataChanged && zk.isShardList(event.getPath())) { LOG.info(this + " detected change in shardList. Committing current shard state and " + "reinitializing spout task from ZK."); commitShardStates(); bootstrapStateFromZookeeper(); } }
From source file:com.andyadc.menagerie.ZkSessionPoller.java
License:Apache License
public static void main(String... args) throws Exception { Logger rootLogger = Logger.getRootLogger(); rootLogger.setLevel(Level.INFO); rootLogger.addAppender(new ConsoleAppender(new SimpleLayout())); final ZooKeeper zk = new ZooKeeper("172.16.84.129:2181", 2000, new Watcher() { @Override//from w w w .j a v a2 s. c o m public void process(WatchedEvent event) { System.out.printf("state=%s\ttype=%s%n", event.getState(), event.getType()); } }); final CountDownLatch latch = new CountDownLatch(1); ZkSessionPoller poller = new ZkSessionPoller(zk, 200, new ConnectionListenerSkeleton() { @Override public void expired() { System.err.println("Session Expired, shutting down."); try { zk.close(); } catch (InterruptedException e) { throw new RuntimeException(e); } latch.countDown(); } }); poller.startPolling(); latch.await(); poller.stopPolling(); }
From source file:com.anteam.demo.zookeeper.DataMonitor.java
License:Apache License
@SuppressWarnings("deprecation") public void process(WatchedEvent event) { System.out.println("----------------------------------------"); System.out.println("event:" + event); String path = event.getPath(); System.out.println("DataMonitor.process.path:" + path); if (event.getType() == Event.EventType.None) { // We are are being told that the state of the // connection has changed switch (event.getState()) { case SyncConnected: // In this particular example we don't need to do anything // here - watches are automatically re-registered with // server and any watches triggered while the client was // disconnected will be delivered (in order of course) break; case Expired: // It's all over dead = true;//from w ww.j ava 2s . com listener.closing(KeeperException.Code.SessionExpired); break; default: break; } } else { if (path != null && path.equals(znode)) { // Something has changed on the node, let's find out zk.exists(znode, true, this, null); } } if (chainedWatcher != null) { chainedWatcher.process(event); } }
From source file:com.api6.zkclient.watcher.ZKWatcher.java
License:Apache License
/** * ?/*from ww w . ja v a 2s .co m*/ * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent) */ @Override public void process(WatchedEvent event) { LOG.debug("ZooKeeper event is arrived [" + event + " ]..."); EventType eventType = event.getType(); //? boolean stateChanged = event.getPath() == null; // boolean znodeChanged = event.getPath() != null; //??? boolean nodeChanged = eventType == EventType.NodeDataChanged || eventType == EventType.NodeDeleted || eventType == EventType.NodeCreated; //??????????? boolean childChanged = eventType == EventType.NodeDeleted || eventType == EventType.NodeCreated || eventType == EventType.NodeChildrenChanged; client.acquireEventLock(); try { if (client.getShutdownTrigger()) { LOG.debug("client will shutdown,ignore the event [" + eventType + " | " + event.getPath() + "]"); return; } if (stateChanged) {//ZooKeeper??? process.processStateChanged(event); } if (nodeChanged) {//?????? process.processNodeChanged(event); } if (childChanged) {//?????????? process.processChildChanged(event); } } finally { if (stateChanged) { client.getEventLock().getStateChangedCondition().signalAll(); // ????watch. // ???????? // ???? if (event.getState() == KeeperState.Expired) { client.getEventLock().getNodeEventCondition().signalAll(); client.getEventLock().getNodeOrChildChangedCondition().signalAll(); // ???? process.processAllNodeAndChildListeners(event); } } if (znodeChanged) { client.getEventLock().getNodeEventCondition().signalAll(); } if (nodeChanged || childChanged) { client.getEventLock().getNodeOrChildChangedCondition().signalAll(); } client.releaseEventLock(); } }
From source file:com.api6.zkclient.watcher.ZKWatcherProcess.java
License:Apache License
/** * ???/*w w w . ja va 2 s . co m*/ * @param event * @return void */ public void processChildChanged(final WatchedEvent event) { final String path = event.getPath(); final Set<ZKListener> listeners = client.getChildListenerMap().get(path); //???? submitChildEvent(listeners, path, event.getType()); }
From source file:com.api6.zkclient.watcher.ZKWatcherProcess.java
License:Apache License
/** * ???/*ww w . j a v a 2 s.co m*/ * @param event * @return void */ public void processNodeChanged(final WatchedEvent event) { final String path = event.getPath(); final EventType eventType = event.getType(); final Set<ZKListener> listeners = client.getNodeListenerMap().get(path); if (listeners == null || listeners.isEmpty()) { return; } //listenersZKChildDataListener? //?????? //????ZKChildDataListener final Set<ZKListener> childDataChangeListners = new CopyOnWriteArraySet<>(); final Set<ZKListener> nodeListners = new CopyOnWriteArraySet<>(); classifyListeners(listeners, nodeListners, childDataChangeListners); //???? submitNodeEvent(nodeListners, childDataChangeListners, path, eventType); //???? if (eventType == EventType.NodeDataChanged) { //???? submitChildDataEvent(childDataChangeListners, path, eventType); } }
From source file:com.api6.zkclient.watcher.ZKWatcherProcess.java
License:Apache License
/** * ????/*w w w. j a v a 2 s .c o m*/ * ????watch * ???????? * ?????????? * @param eventType * @return void * @author: zhaojie/zh_jie@163.com */ public void processAllNodeAndChildListeners(final WatchedEvent event) { LOG.debug("processAllNodeAndChildListeners...."); //??? for (Entry<String, CopyOnWriteArraySet<ZKListener>> entry : client.getNodeListenerMap().entrySet()) { Set<ZKListener> nodeListners = new CopyOnWriteArraySet<ZKListener>(); Set<ZKListener> childDataChangeListners = new CopyOnWriteArraySet<ZKListener>(); Set<ZKListener> listeners = entry.getValue(); classifyListeners(listeners, nodeListners, childDataChangeListners); //???? submitNodeEvent(nodeListners, childDataChangeListners, entry.getKey(), event.getType()); } //??? for (Entry<String, CopyOnWriteArraySet<ZKListener>> entry : client.getChildListenerMap().entrySet()) { //???? submitChildEvent(entry.getValue(), entry.getKey(), event.getType()); } }
From source file:com.att.nsa.zkUtils.ZkWatcher.java
License:Open Source License
public static Watcher getLoggingWatcher(final String title, final Logger log) { return new Watcher() { @Override//from w ww . j a va 2 s.c om public void process(WatchedEvent event) { log.info("ZK watch for " + title + ": " + event.getType() + " @ " + event.getPath()); } }; }