【问题标题】:Why does Hazelcast IMap.putTransient fire the EntryAddedListener?为什么 Hazelcast IMap.putTransient 会触发 EntryAddedListener?
【发布时间】:2017-04-27 13:16:10
【问题描述】:

使用 3.6.1 版,为什么 put 和 putTransient 相对于地图侦听器有不同的行为(添加了 .putTransient 触发,更新了 .put 触发)?

public void testNoDelta() {
    String str = "world";
    String key = "hello";
    map.putTransient(key, str, 1000, TimeUnit.MILLISECONDS);
    map.putTransient(key, str, 1000, TimeUnit.MILLISECONDS);
    map.putTransient(key, str, 1000, TimeUnit.MILLISECONDS);
    map.putTransient(key, str, 1000, TimeUnit.MILLISECONDS);

    map.put(key, str);
    map.put(key, str);
    map.put(key, str);
    map.put(key, str);
}

【问题讨论】:

  • 你也收到EVICTED/EXPIRED 事件吗?
  • 我没有看到任何被驱逐或过期的事件。
  • 没关系,这只是帮助诊断的一种方式,但您也需要监听这些事件才能获得它们。这些将有助于验证的行为是当您执行 put 时条目是否已经存在;如果您看到EVICTED,那么它已被删除,如果您还没有看到EVICTED(但一般都可以看到),那么很可能该条目就在那里。如果您知道该条目是否存在,则可以知道是否分别期待 UPDATEDADDED 事件。
  • 然后,一旦您有办法交叉检查对象存在/不存在的行为,您就可以查看它是否与@vassilis-bekiaris 提到的问题相同。跨度>

标签: cluster-computing hazelcast hazelcast-imap


【解决方案1】:

我认为您点击了 this issue,这是由 https://github.com/hazelcast/hazelcast/pull/10082 在 Hazelcast 3.8.1 中修复的。

【讨论】:

猜你喜欢
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多