2

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

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

  1. 调试日志以指示从远程源实际检索到的值/时间。这可以在进行远程检索的类中完成。

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

应该可以在没有额外通知的情况下通过 reload 方法实现这一点,并在开始获取新值之前获取当前缓存内容,然后比较新值和以前的值 - 然后采取额外的行动。我一直在寻找一种更通用的方法来解耦修改通知。

谢谢。

4

1 回答 1

1

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

于 2012-12-11T18:02:07.680 回答