【发布时间】:2019-06-05 19:05:14
【问题描述】:
目前我正在使用 ClientDAO.getClients() 从数据库中获取客户端列表,并使用 guava 进行缓存,刷新周期如下所示 30 分钟
private List<String> getClients() {
final Supplier<List<String>> supplier = () -> ClientDAO.getClients();
Suppliers.memoizeWithExpiration(supplier, 30, TimeUnit.MINUTES);
return supplier.get();
}
我们有不同的应用程序更新client 表和另一个应用程序从client 表中读取并如上所述缓存,并且这两个应用程序之间没有Restful 或任何类型的api 通信。每当更新数据库中相应的client 表而不是在特定时间窗口 30 分钟刷新时,有什么方法可以触发此缓存更新?
【问题讨论】:
-
您使用的是哪个 RDBMS?从技术上讲,可能可以通过数据库触发器通知缓存应用程序,但这只能解决这两个应用程序不相互通信的问题。
-
我正在使用 SQL Server 2008 r2,是的,这两个应用程序不相互通信