0
私は複数の子を持つベースパスを持っています。アプリケーションの起動時にベースパスとすべての子にウォッチャーを追加しています。キュレーターの時計が有効期限にリセットした後に起動しない
void init(){
List<String> children = zkCfg.getClient().getChildren().usingWatcher(this).forPath(basePath);
Stat stat = zkCfg.getClient().checkExists().usingWatcher(this).forPath(basePath);
lastKnownVersion.put(basePath.substring(basePath.lastIndexOf('/') + 1), stat.getVersion());
for (String child : children) {
stat = zkCfg.getClient().checkExists().usingWatcher(this).forPath(basePath + "/" + child);
lastKnownVersion.put(child, stat.getVersion());
}
}
ここで、期限切れのEvent in processメソッドをキャッチしています。
このメソッドは有効期限が切れると実行されますが、ノードの変更によってウォッチがトリガーされることはありません。