當前位置: 首頁>>代碼示例>>Java>>正文


Java PathChildrenCacheEvent類代碼示例

本文整理匯總了Java中org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent的典型用法代碼示例。如果您正苦於以下問題:Java PathChildrenCacheEvent類的具體用法?Java PathChildrenCacheEvent怎麽用?Java PathChildrenCacheEvent使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


PathChildrenCacheEvent類屬於org.apache.curator.framework.recipes.cache包,在下文中一共展示了PathChildrenCacheEvent類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
    ChildData data = event.getData();
    switch (event.getType()) {

        case CHILD_ADDED:

            add(data.getPath().substring(data.getPath().lastIndexOf("/")+1),event.getData().getData()) ;
            break;
        case CHILD_REMOVED:
            delete(data.getPath().substring(data.getPath().lastIndexOf("/")+1),event.getData().getData()); ;
            break;
        case CHILD_UPDATED:
            add(data.getPath().substring(data.getPath().lastIndexOf("/")+1),event.getData().getData()) ;
            break;
        default:
            break;
    }
}
 
開發者ID:huang-up,項目名稱:mycat-src-1.6.1-RELEASE,代碼行數:19,代碼來源:BinDataPathChildrenCacheListener.java

示例2: listenerPathChildrenCache

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
/**
     * 設置子節點更改監聽
     *
     * @param path
     * @throws Exception
     */
    public boolean listenerPathChildrenCache(String path, BiConsumer<CuratorFramework, PathChildrenCacheEvent> biConsumer) {

        if (!ObjectUtils.allNotNull(zkClient, path, biConsumer)) {
            return Boolean.FALSE;
        }
        try {
            Stat stat = exists(path);
            if (stat != null) {
                PathChildrenCache watcher = new PathChildrenCache(zkClient, path, true);
                watcher.start(PathChildrenCache.StartMode.POST_INITIALIZED_EVENT);
                //該模式下 watcher在重連的時候會自動 rebuild 否則需要重新rebuild
                watcher.getListenable().addListener(biConsumer::accept, pool);
                if (!pathChildrenCaches.contains(watcher)) {
                    pathChildrenCaches.add(watcher);
                }
//                else{
//                    watcher.rebuild();
//                }
                return Boolean.TRUE;
            }
        } catch (Exception e) {
            log.error("listen path children cache fail! path:{} , error:{}", path, e);
        }
        return Boolean.FALSE;
    }
 
開發者ID:lee123lee123,項目名稱:GoPush,代碼行數:32,代碼來源:ZkUtils.java

示例3: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
    final Type eventType = event.getType();
    final String path = event.getData().getPath();
    final String name = ZKHelper.getNameFromPath(path);
    LOGGER.debugMarker("ZoneEventListener", "Receive zookeeper event %s %s", eventType, path);

    if (eventType == Type.CHILD_ADDED || eventType == Type.CHILD_UPDATED) {
        agentService.report(new AgentPath(zone.getName(), name), AgentStatus.IDLE);
        return;
    }

    if (eventType == Type.CHILD_REMOVED) {
        agentService.report(new AgentPath(zone.getName(), name), AgentStatus.OFFLINE);
        return;
    }
}
 
開發者ID:FlowCI,項目名稱:flow-platform,代碼行數:18,代碼來源:ZoneServiceImpl.java

示例4: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
    ChildData childData = event.getData();
    switch (event.getType()) {
        case CHILD_ADDED:
            try {
                lockTableByNewNode(childData);
            } catch (Exception e) {
                LOGGER.info("CHILD_ADDED error", e);
            }
            break;
        case CHILD_UPDATED:
            updateMeta(childData);
            break;
        case CHILD_REMOVED:
            deleteNode(childData);
            break;
        default:
            break;
    }
}
 
開發者ID:actiontech,項目名稱:dble,代碼行數:22,代碼來源:DDLChildListener.java

示例5: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
    ChildData childData = event.getData();
    switch (event.getType()) {
        case CHILD_ADDED:
            createOrUpdateViewMeta(childData, false);
            break;
        case CHILD_UPDATED:
            createOrUpdateViewMeta(childData, true);
            break;
        case CHILD_REMOVED:
            deleteNode(childData);
            break;
        default:
            break;
    }
}
 
開發者ID:actiontech,項目名稱:dble,代碼行數:18,代碼來源:ViewChildListener.java

示例6: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
    ChildData data = event.getData();
    switch (event.getType()) {
        case CHILD_ADDED:
            add(data, false);
            break;
        case CHILD_UPDATED:
            add(data, true);
            break;
        case CHILD_REMOVED:
            delete(data);
            break;
        default:
            break;
    }
}
 
開發者ID:actiontech,項目名稱:dble,代碼行數:18,代碼來源:BinDataPathChildrenCacheListener.java

示例7: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override
public synchronized void childEvent(CuratorFramework curatorFramework, PathChildrenCacheEvent event) throws Exception {
    AssertHelper.isTrue(isJoined(), "illegal state .");
    boolean hasLeadership = leaderSelector != null && leaderSelector.hasLeadership();
    if (!hasLeadership) {
        return;
    }
    if (!EventHelper.isChildModifyEvent(event)) {
        return;
    }
    StandbyJobData standbyJobData = new StandbyJobData(event.getData());
    if (StringHelper.isEmpty(standbyJobData.getData().getJobOperation())) {
        return;
    }
    StandbyJobData.Data data = standbyJobData.getData();
    if (data.isUnknownOperation()) {
        return;
    }
    StandbyNodeData.Data nodeData = standbyApiFactory.nodeApi().getNode(nodePath).getData();
    executeOperation(nodeData, data);
}
 
開發者ID:xiaolongzuo,項目名稱:niubi-job,代碼行數:22,代碼來源:StandbyNode.java

示例8: listen

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@PostConstruct
public void listen() throws Exception {
    StandbyApiFactory standbyApiFactory = new StandbyApiFactoryImpl(client);
    PathChildrenCache pathChildrenCache = new PathChildrenCache(client, standbyApiFactory.pathApi().getJobPath(), true);
    pathChildrenCache.getListenable().addListener(new PathChildrenCacheListener() {
        @Override
        public synchronized void childEvent(CuratorFramework clientInner, PathChildrenCacheEvent event) throws Exception {
            if (!EventHelper.isChildUpdateEvent(event) && !EventHelper.isChildAddEvent(event)) {
                return;
            }
            StandbyJobData standbyJobData = new StandbyJobData(event.getData());
            if (!standbyJobData.getData().isOperated()) {
                return;
            }
            LoggerHelper.info("begin update standby job summary " + standbyJobData.getData());
            standbyJobSummaryService.updateJobSummary(standbyJobData.getData());
            standbyJobLogService.updateJobLog(standbyJobData.getData());
            LoggerHelper.info("update standby job summary successfully " + standbyJobData.getData());
        }
    });
    pathChildrenCache.start(PathChildrenCache.StartMode.POST_INITIALIZED_EVENT);
}
 
開發者ID:xiaolongzuo,項目名稱:niubi-job,代碼行數:23,代碼來源:StandbyJobSummaryListener.java

示例9: listen

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@PostConstruct
public void listen() throws Exception {
    MasterSlaveApiFactory masterSlaveApiFactory = new MasterSlaveApiFactoryImpl(client);
    PathChildrenCache pathChildrenCache = new PathChildrenCache(client, masterSlaveApiFactory.pathApi().getJobPath(), true);
    pathChildrenCache.getListenable().addListener(new PathChildrenCacheListener() {
        @Override
        public synchronized void childEvent(CuratorFramework clientInner, PathChildrenCacheEvent event) throws Exception {
            if (!EventHelper.isChildUpdateEvent(event) && !EventHelper.isChildAddEvent(event)) {
                return;
            }
            MasterSlaveJobData masterSlaveJobData = new MasterSlaveJobData(event.getData());
            if (!masterSlaveJobData.getData().isOperated()) {
                return;
            }
            LoggerHelper.info("begin update master-slave job summary " + masterSlaveJobData.getData());
            masterSlaveJobSummaryService.updateJobSummary(masterSlaveJobData.getData());
            masterSlaveJobLogService.updateJobLog(masterSlaveJobData.getData());
            LoggerHelper.info("update master-slave job summary successfully " + masterSlaveJobData.getData());
        }
    });
    pathChildrenCache.start(PathChildrenCache.StartMode.POST_INITIALIZED_EVENT);
}
 
開發者ID:xiaolongzuo,項目名稱:niubi-job,代碼行數:23,代碼來源:MasterSlaveJobSummaryListener.java

示例10: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
    switch (event.getType()) {
        case CHILD_ADDED:
        case CHILD_UPDATED: {
            addProvider(event.getData(), false);
            break;
        }

        case CHILD_REMOVED: {
            providers.remove(ZKPaths.getNodeFromPath(event.getData().getPath()));
            break;
        }
        default:
            break;
    }
}
 
開發者ID:dinstone,項目名稱:jrpc,代碼行數:18,代碼來源:ZookeeperServiceDiscovery.java

示例11: createNode

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
/** Creates a node below the given directory root */
private String createNode(String pathString, byte[] content, boolean createParents, CreateMode createMode, Node root, Listeners listeners)
        throws KeeperException.NodeExistsException, KeeperException.NoNodeException {
    validatePath(pathString);
    Path path = Path.fromString(pathString);
    if (path.isRoot()) return "/"; // the root already exists
    Node parent = root.getNode(Paths.get(path.getParentPath().toString()), createParents);
    String name = nodeName(path.getName(), createMode);

    if (parent == null)
        throw new KeeperException.NoNodeException(path.getParentPath().toString());
    if (parent.children().containsKey(path.getName()))
        throw new KeeperException.NodeExistsException(path.toString());

    parent.add(name).setContent(content);
    String nodePath = "/" + path.getParentPath().toString() + "/" + name;
    listeners.notify(Path.fromString(nodePath), content, PathChildrenCacheEvent.Type.CHILD_ADDED);
    return nodePath;
}
 
開發者ID:vespa-engine,項目名稱:vespa,代碼行數:20,代碼來源:MockCurator.java

示例12: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
    switch (event.getType()) {
        case CHILD_ADDED:
            applicationAdded(ApplicationId.fromSerializedForm(Path.fromString(event.getData().getPath()).getName()));
            break;
        // Event CHILD_REMOVED will be triggered on all config servers if deleteApplication() above is called on one of them
        case CHILD_REMOVED:
            applicationRemoved(ApplicationId.fromSerializedForm(Path.fromString(event.getData().getPath()).getName()));
            break;
        case CHILD_UPDATED:
            // do nothing, application just got redeployed
            break;
        default:
            break;
    }
    // We might have lost events and might need to remove applications (new applications are
    // not added by listening for events here, they are added when session is added, see RemoteSessionRepo)
    removeApplications();
}
 
開發者ID:vespa-engine,項目名稱:vespa,代碼行數:21,代碼來源:ZKTenantApplications.java

示例13: testDispatcherPropagatesEvents

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Test
public void testDispatcherPropagatesEvents() throws Exception {
  final PathChildrenCacheEvent.Type[] types = new PathChildrenCacheEvent.Type[] {
      PathChildrenCacheEvent.Type.CHILD_ADDED,
      PathChildrenCacheEvent.Type.CHILD_REMOVED,
      PathChildrenCacheEvent.Type.CHILD_UPDATED
  };

  for (final PathChildrenCacheEvent.Type type:types) {
    dispatcher.childEvent(null, new PathChildrenCacheEvent(type, child));

    final TransientStoreEvent event = TransientStoreEvent.of(EventDispatcher.MAPPINGS.get(type), key, value);
    Mockito
        .verify(store)
        .fireListeners(event);
  }

  Assert.assertEquals("Number of event types that dispatcher can handle is different", types.length, EventDispatcher.MAPPINGS.size());
}
 
開發者ID:axbaretto,項目名稱:drill,代碼行數:20,代碼來源:TestEventDispatcher.java

示例14: onZkEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
private void onZkEvent(final PathChildrenCacheEvent event) {
    // Lock is needed only to support massive load on startup. In all other cases it will be called for
    // event type creation/update, so it won't create any additional load.
    String invalidatedEventType = null;
    rwLock.readLock().lock();
    try {
        final boolean needInvalidate = event.getType() == PathChildrenCacheEvent.Type.CHILD_UPDATED ||
                event.getType() == PathChildrenCacheEvent.Type.CHILD_REMOVED ||
                event.getType() == PathChildrenCacheEvent.Type.CHILD_ADDED;
        if (needInvalidate) {
            final String[] path = event.getData().getPath().split("/");
            invalidatedEventType = path[path.length - 1];
            eventTypeCache.invalidate(invalidatedEventType);
        }
    } finally {
        rwLock.readLock().unlock();
    }
    if (null != invalidatedEventType) {
        for (final Consumer<String> listener : invalidationListeners) {
            listener.accept(invalidatedEventType);
        }
    }
}
 
開發者ID:zalando,項目名稱:nakadi,代碼行數:24,代碼來源:EventTypeCache.java

示例15: childEvent

import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; //導入依賴的package包/類
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception
{
    String node;
    String nodeId;

    try {
        node = ZKPaths.getNodeFromPath(event.getData().getPath());
        nodeId = node.substring(node.indexOf("_") + 1);

        clusterSyncManagerInstance.updateNodeStatus(nodeId, event.getType());

    }catch (Exception e){
        logger.error("Exception receiving event {}: {}", event, e.getMessage());
    }

}
 
開發者ID:Stratio,項目名稱:Decision,代碼行數:18,代碼來源:ClusterPathChildrenCacheListener.java


注:本文中的org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。