0

早上好,

我们的服务使用一个缓存,它每隔一段时间以一种周期性的方式与数据库的当前状态同步。但是,有一个问题是,如果服务由于某种原因重新启动,那么一些更新频率较低的缓存还没有收到他们的数据副本{因为还没有安排周期性任务},所以有更多的停机时间。我正在考虑添加一个修改后的 getter 接口,传入一个函子,如果在缓存中找不到它,它将从数据库中获取值。问题来自 c++ 背景我需要一些关于正确的 java 方式的反馈。

我正在考虑添加这样的界面。

V getOrGenerateForKey(final Key k, final Function<Key, V> foo)

是否有任何其他 java 类可以更好地捕捉这个想法或提供更简洁的解决方案?

谢谢, 萨布拉马尼亚

4

1 回答 1

0

您可能想看看 Guava 中的CacheBuilder。它的CacheLoader是界面的“生成”和“更新”部分,由 CacheLoader 构建的缓存CacheBuilder是“获取”。

于 2013-10-28T17:46:35.550 回答