当我在带有 curator 的 Zookeeper 节点上调用 getChildren() 时,有没有办法忽略代表锁的子节点?
我想用一个特定节点的数据读取所有孩子。因此,我首先调用 getChildren() 并遍历返回的 List 并对每个这样的孩子调用 getData()。为了避免孩子们在两者之间发生变化,我首先需要一个 InterProcessMutex。不幸的是,孩子的列表也包含这个互斥体。
InterProcessMutex mutex = new InterProcessMutex(client, parentNodePath);
mutex.acquire();
try {
List<String> children = client.getChildren().forPath(parentNodePath);
for (String child : children) {
// do something
// ignore the lock-node
}
} finally {
mutex.release();
}
有没有更聪明的方法来做到这一点?或者只是忽略锁定节点?