客户端缓存配置 -
<region name="test" refid="PROXY">
<region-attributes>
<cache-listener>
<class-name>com.test.cache.SimpleCacheListener</class-name>
</cache-listener>
</region-attributes>
</region>
对于上面的客户端配置,我使用了一个 CacheListener 来监听这个缓存“测试”上的事件。
我面临的问题甚至是更新事件,即在缓存中为相同的键放置不同的值,触发 afterCreate 事件。
IE
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>
进行上述更改后,它会检测更新事件,但前提是同一个客户端刚刚创建了一个条目并尝试更新它,而不是早期创建的条目。
如果我遗漏了什么,请帮助并告诉我。