缓存修改通知?

时间:2012-12-11 17:20:57

标签: java guava

我正在寻找类似于RemovalListener / RemovalNotification的东西 - 但是修改了缓存中的值何时被修改的通知。通知将包括旧值以及刚刚添加的新值。

[更新] 我只通过CaceLoader(加载和重新加载)填充缓存。缓存元素的“源”有时是flakey(远程缓存)。 因此,替换元素的两个主要原因是:

  1. 调试日志记录以指示实际检索的时间/值 来自远程来源。这个可以在课堂上完成 这是远程检索。

  2. 生成差异然后可以主动推送到(远程) 客户端。例如通过blazeDS发布更改,而不是要求 客户不断“得到”。

  3. 应该可以在没有通过重新加载方法的附加通知的情况下实现此目的,并在关闭并获取新值之前获取当前缓存内容,然后比较新值和先前值 - 然后采取其他操作。我一直在寻找一种更通用的方法来解耦修改通知。

    感谢。

1 个答案:

答案 0 :(得分:1)

您可以提交一个Guava功能请求,要求将一个方法添加到RemovalNotification,当原因为REPLACED时,该方法将返回替换值。但请尽可能详细地提供您的问题以及为什么这是一个很好的解决方案。