本文整理匯總了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;
}
}
示例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;
}
示例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;
}
}
示例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;
}
}
示例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;
}
}
示例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;
}
}
示例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);
}
示例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);
}
示例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);
}
示例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;
}
}
示例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;
}
示例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();
}
示例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());
}
示例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);
}
}
}
示例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());
}
}