java.io.Closeable, java.lang.AutoCloseablepublic class PathChildrenCache
extends java.lang.Object
implements java.io.Closeable
A utility that attempts to keep all data from all children of a ZK path locally cached. This class will watch the ZK path, respond to update/create/delete events, pull down the data, etc. You can register a listener that will get notified when changes occur.
IMPORTANT - it's not possible to stay transactionally in sync. Users of this class must be prepared for false-positives and false-negatives. Additionally, always use the version number when updating data to avoid overwriting another process' change.
| Modifier and Type | Class | Description |
|---|---|---|
static class |
PathChildrenCache.StartMode |
Method of priming cache on
start(StartMode) |
| Modifier and Type | Field | Description |
|---|---|---|
static java.util.concurrent.ThreadFactory |
defaultThreadFactory |
| Constructor | Description |
|---|---|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData) |
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData,
boolean dataIsCompressed,
java.util.concurrent.ExecutorService executorService) |
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData,
boolean dataIsCompressed,
java.util.concurrent.ThreadFactory threadFactory) |
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData,
boolean dataIsCompressed,
org.apache.curator.utils.CloseableExecutorService executorService) |
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData,
java.util.concurrent.ThreadFactory threadFactory) |
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
PathChildrenCacheMode mode) |
Deprecated.
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
PathChildrenCacheMode mode,
java.util.concurrent.ThreadFactory threadFactory) |
Deprecated.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
clear() |
Clears the current data without beginning a new query and without generating any events
for listeners.
|
void |
clearAndRefresh() |
Clear out current data and begin a new query on the path
|
void |
clearDataBytes(java.lang.String fullPath) |
As a memory optimization, you can clear the cached data bytes for a node.
|
boolean |
clearDataBytes(java.lang.String fullPath,
int ifVersion) |
As a memory optimization, you can clear the cached data bytes for a node.
|
void |
close() |
Close/end the cache
|
protected void |
ensurePath() |
|
java.util.List<ChildData> |
getCurrentData() |
Return the current data.
|
ChildData |
getCurrentData(java.lang.String fullPath) |
Return the current data for the given path.
|
org.apache.curator.framework.listen.ListenerContainer<PathChildrenCacheListener> |
getListenable() |
Return the cache listenable
|
protected void |
handleException(java.lang.Throwable e) |
Default behavior is just to log the exception
|
void |
rebuild() |
NOTE: this is a BLOCKING method.
|
void |
rebuildNode(java.lang.String fullPath) |
NOTE: this is a BLOCKING method.
|
protected void |
remove(java.lang.String fullPath) |
|
void |
start() |
Start the cache.
|
void |
start(boolean buildInitial) |
Deprecated.
use
start(StartMode) |
void |
start(PathChildrenCache.StartMode mode) |
Start the cache.
|
public static final java.util.concurrent.ThreadFactory defaultThreadFactory
@Deprecated
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
PathChildrenCacheMode mode)
PathChildrenCache(CuratorFramework, String, boolean) insteadclient - the clientpath - path to watchmode - caching mode@Deprecated
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
PathChildrenCacheMode mode,
java.util.concurrent.ThreadFactory threadFactory)
PathChildrenCache(CuratorFramework, String, boolean, ThreadFactory) insteadclient - the clientpath - path to watchmode - caching modethreadFactory - factory to use when creating internal threadspublic PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData)
client - the clientpath - path to watchcacheData - if true, node contents are cached in addition to the statpublic PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData,
java.util.concurrent.ThreadFactory threadFactory)
client - the clientpath - path to watchcacheData - if true, node contents are cached in addition to the statthreadFactory - factory to use when creating internal threadspublic PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData,
boolean dataIsCompressed,
java.util.concurrent.ThreadFactory threadFactory)
client - the clientpath - path to watchcacheData - if true, node contents are cached in addition to the statdataIsCompressed - if true, data in the path is compressedthreadFactory - factory to use when creating internal threadspublic PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData,
boolean dataIsCompressed,
java.util.concurrent.ExecutorService executorService)
client - the clientpath - path to watchcacheData - if true, node contents are cached in addition to the statdataIsCompressed - if true, data in the path is compressedexecutorService - ExecutorService to use for the PathChildrenCache's background thread. This service should be single threaded, otherwise the cache may see inconsistent results.public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
java.lang.String path,
boolean cacheData,
boolean dataIsCompressed,
org.apache.curator.utils.CloseableExecutorService executorService)
client - the clientpath - path to watchcacheData - if true, node contents are cached in addition to the statdataIsCompressed - if true, data in the path is compressedexecutorService - Closeable ExecutorService to use for the PathChildrenCache's background thread. This service should be single threaded, otherwise the cache may see inconsistent results.public void start()
throws java.lang.Exception
java.lang.Exception - errors@Deprecated
public void start(boolean buildInitial)
throws java.lang.Exception
start(StartMode)start() but gives the option of doing an initial buildbuildInitial - if true, rebuild() will be called before this method
returns in order to get an initial view of the node; otherwise,
the cache will be initialized asynchronouslyjava.lang.Exception - errorspublic void start(PathChildrenCache.StartMode mode) throws java.lang.Exception
mode - Method for priming the cachejava.lang.Exception - errorspublic void rebuild()
throws java.lang.Exception
java.lang.Exception - errorspublic void rebuildNode(java.lang.String fullPath)
throws java.lang.Exception
fullPath - full path of the node to rebuildjava.lang.Exception - errorspublic void close()
throws java.io.IOException
close in interface java.lang.AutoCloseableclose in interface java.io.Closeablejava.io.IOException - errorspublic org.apache.curator.framework.listen.ListenerContainer<PathChildrenCacheListener> getListenable()
public java.util.List<ChildData> getCurrentData()
public ChildData getCurrentData(java.lang.String fullPath)
null
is returned.fullPath - full path to the node to checkpublic void clearDataBytes(java.lang.String fullPath)
ChildData.getData() for this node will return null.fullPath - the path of the node to clearpublic boolean clearDataBytes(java.lang.String fullPath,
int ifVersion)
ChildData.getData() for this node will return null.fullPath - the path of the node to clearifVersion - if non-negative, only clear the data if the data's version matches this versionpublic void clearAndRefresh()
throws java.lang.Exception
java.lang.Exception - errorspublic void clear()
protected void handleException(java.lang.Throwable e)
e - the exceptionprotected void ensurePath()
throws java.lang.Exception
java.lang.Exceptionprotected void remove(java.lang.String fullPath)
Copyright © 2011–2018 The Apache Software Foundation. All rights reserved.