【发布时间】:2012-11-07 11:23:04
【问题描述】:
客户端缓存配置 -
<region name="test" refid="PROXY">
<region-attributes>
<cache-listener>
<class-name>com.test.cache.SimpleCacheListener</class-name>
</cache-listener>
</region-attributes>
</region>
对于上面的客户端配置,我使用了一个 CacheListener 来监听这个缓存“测试”上的事件。
我面临的问题甚至是更新事件,即在缓存中为同一个键放置不同的值,触发 afterCreate 事件。
即
region.put("test key","test value")
和
region.put("test key","test updated value")
两者都在 Listener 中生成 afterCreateEvent。
已编辑
让我更清楚一点我想在这里实现什么。我希望在创建条目时通知我的客户端,该条目是否已经存在于缓存服务器中。
例如
如果某个区域的缓存服务器上已经存在条目 [Test,Value],那么在进行 put [Test,Value1] 时,客户端应该知道这是一个更新,并且无论该条目是否存在于客户端中,都应该这样做缓存与否。
我试过这样的-
<region name="test" refid="PROXY" >
<region-attributes data-policy="normal">
<!-- <region-attributes> -->
<subscription-attributes interest-policy="all"/>
<cache-listener>
<class-name>com.cache.test.SimpleCacheListener</class-name>
</cache-listener>
</region-attributes>
</region>
在进行上述更改后,它会检测更新事件,但前提是同一客户端刚刚创建了一个条目并尝试更新它,而不是早期创建的条目。
如果我遗漏了什么,请帮助并告诉我。
【问题讨论】:
标签: caching distributed-caching gemfire