当前位置: 首页 > 知识库问答 >
问题:

展馆内的手表在到期时重置后不会触发

郎志
2023-03-14

我有一个basepath,它有多个孩子。我正在basepath上添加监视程序,并在应用程序启动时添加所有子项。

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());
                }
}

现在,我正在捕获进程方法中的过期事件。

public void process(WatchedEvent event) {

        try {    
            synchronized (this) {   
                if (event.getState().equals(Event.KeeperState.Expired)) {           
                  init()  
                }
}

此方法在到期时执行,但监视不会在节点中的任何更改时触发。

共有1个答案

刘建中
2023-03-14

最后我自己找到了解决办法。

而不是自己管理节点及其所有子节点上的观察者。使用Treecache,它还可以管理会话到期时的所有观察者。

 类似资料:
  • 下面是build.gradle文件: 下面是Android的清单:

  • 问题内容: 我正在Mac OS X上运行最新版本的Node。我已经与Stylus一起安装了Express。也是最新版本。 当我修改 .styl 文件时,手写笔不会重新编译它们。我怎样才能解决这个问题? 重新编译我的 .styl 文件的唯一解决方案是删除已编译的 .css 文件…重新启动我的应用程序,或者执行clear-cache- refresh(CMD + Shift + R)不会导致重新编译-

  • 我在global.asax中尝试了以下代码,但不起作用,并导致Application_Error(“响应在此上下文中不可用。”)。

  • 尽管试图避免所有记录在案的陷阱,阻止React在状态更改后重新渲染,但我仍然无法解决我的问题: } 从每个长方体组件调用update函数,并触发长方体网格上新颜色的指定。 试图避免常见的错误: 颜色数组只有在通过扩展运算符从状态复制后才被修改 通过setState()传递新数组 此外,我还处理了两个组件中函数的实例绑定 但是,尽管onClick成功触发了状态更改,但不会进行重新渲染。我在这里缺少的

  • 表单提交成功后,页面不会重定向到感谢页面,在控制台上,我得到了错误响应,因为AMP4Email不支持重定向。请让我知道重定向功能何时工作。 我们正在使用 在Php中,我添加了重定向头

  • 问题内容: 自从更新到iOS8.3以来,有没有人注意到基于回合的比赛通知的任何更改?在我的应用中,当我调用endTurnWithNextParticipants时,在升级之前,这导致通知发送给对手,这将触发在他们的设备上调用receiveTurnEventForMatch,但情况不再如此。当对手终止应用程序并重新启动应用程序时,他们可以看到轮到他们了,因此游戏中心的比赛已按照参与顺序正确更新,但这