|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.curator.framework.recipes.cache.PathChildrenCache
public class PathChildrenCache
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.
| Nested Class Summary | |
|---|---|
static class |
PathChildrenCache.StartMode
Method of priming cache on start(StartMode) |
| Constructor Summary | |
|---|---|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData)
|
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData,
boolean dataIsCompressed,
org.apache.curator.utils.CloseableExecutorService executorService)
|
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData,
boolean dataIsCompressed,
ExecutorService executorService)
|
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData,
boolean dataIsCompressed,
ThreadFactory threadFactory)
|
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData,
ThreadFactory threadFactory)
|
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
PathChildrenCacheMode mode)
Deprecated. use PathChildrenCache(CuratorFramework, String, boolean) instead |
|
PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
PathChildrenCacheMode mode,
ThreadFactory threadFactory)
Deprecated. use PathChildrenCache(CuratorFramework, String, boolean, ThreadFactory) instead |
|
| Method Summary | |
|---|---|
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(String fullPath)
As a memory optimization, you can clear the cached data bytes for a node. |
boolean |
clearDataBytes(String fullPath,
int ifVersion)
As a memory optimization, you can clear the cached data bytes for a node. |
void |
close()
Close/end the cache |
List<ChildData> |
getCurrentData()
Return the current data. |
ChildData |
getCurrentData(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(Throwable e)
Default behavior is just to log the exception |
void |
rebuild()
NOTE: this is a BLOCKING method. |
void |
rebuildNode(String fullPath)
NOTE: this is a BLOCKING method. |
protected void |
remove(String fullPath)
|
void |
start()
Start the cache. |
void |
start(boolean buildInitial)
Deprecated. use start(StartMode) |
void |
start(PathChildrenCache.StartMode mode)
Start the cache. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
PathChildrenCacheMode mode)
PathChildrenCache(CuratorFramework, String, boolean) instead
client - the clientpath - path to watchmode - caching mode
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
PathChildrenCacheMode mode,
ThreadFactory threadFactory)
PathChildrenCache(CuratorFramework, String, boolean, ThreadFactory) instead
client - the clientpath - path to watchmode - caching modethreadFactory - factory to use when creating internal threads
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData)
client - the clientpath - path to watchcacheData - if true, node contents are cached in addition to the stat
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData,
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 threads
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData,
boolean dataIsCompressed,
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 threads
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
String path,
boolean cacheData,
boolean dataIsCompressed,
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
public PathChildrenCache(org.apache.curator.framework.CuratorFramework client,
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| Method Detail |
|---|
public void start()
throws Exception
Exception - errors
public void start(boolean buildInitial)
throws Exception
start(StartMode)
start() but gives the option of doing an initial build
buildInitial - 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 asynchronously
Exception - errors
public void start(PathChildrenCache.StartMode mode)
throws Exception
mode - Method for priming the cache
Exception - errors
public void rebuild()
throws Exception
Exception - errors
public void rebuildNode(String fullPath)
throws Exception
fullPath - full path of the node to rebuild
Exception - errors
public void close()
throws IOException
close in interface CloseableIOException - errorspublic org.apache.curator.framework.listen.ListenerContainer<PathChildrenCacheListener> getListenable()
public List<ChildData> getCurrentData()
public ChildData getCurrentData(String fullPath)
null
is returned.
fullPath - full path to the node to check
public void clearDataBytes(String fullPath)
ChildData.getData() for this node will return null.
fullPath - the path of the node to clear
public boolean clearDataBytes(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 version
public void clearAndRefresh()
throws Exception
Exception - errorspublic void clear()
protected void handleException(Throwable e)
e - the exceptionprotected void remove(String fullPath)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||