2017-04-27 48 views
0

使用版本3.6.1,为什么我们对put和putTransient在地图监听器方面有不同的行为(添加了.putTransient触发器,并更新了.put触发器)?为什么Hazelcast IMap.putTransient触发EntryAddedListener?

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); 
} 
+0

你是否也得到了'EVICTED' /'EXPIRED'事件? –

+0

我没有看到任何被驱逐或过期的事件。 – hklf

+0

这很好,它只是帮助诊断的一种方式,但您也需要倾听这些事件以获取它们。这些将有助于验证的行为是当你执行'put'时入口是否已经存在。如果你看过一个'EVICTED',那么它已经被删除,如果你还没有看到'EVICTED'(但是总体上得到它们),那么最有可能的是那个入口。如果您知道条目是否存在,您可以分别知道是否期待“UPDATED”或“ADDED”事件。 –

回答