【发布时间】:2015-11-25 08:10:17
【问题描述】:
用例:我的 spring 应用程序从 DB 读取数据,但访问预加载的相同缓存。尽管很少,这些表可能会发生变化。在这种情况下,缓存需要失效并预加载。也不是应用程序只读取数据。
经过一番研究,我找到了两个选择..
选项 1:数据库触发器调用 Spring 任务。
我需要在每个应该调用 spring @Scheduled 任务的表的插入/更新时配置触发器。这将负责刷新缓存。但是如何在数据库触发器上调用 Spring 的 @Scheduled 任务呢?
选项 2:使用 Oracle 的 DatabaseChangeNotification
我必须向 Oracle DB 注册一个侦听器。这将监听所有更改,并且只要有更改,我的应用程序就会收到通知。但是,我该如何使用 Spring 来做到这一点?
哪个是更好的选择?有更好的选择吗?在进一步处理选项方面还有什么帮助吗?
注意:我使用的是 Spring + JPA + Oracle 10g
【问题讨论】:
-
你最终选择了什么?
-
@sawe 我想不出一个好的解决方案。我最终每天午夜进行刷新。数据库很小——我负担得起
标签: database spring oracle spring-cache