我有两个在线系统正在运行。他们都在使用eclipselink。
第一个系统是管理系统,其中管理第二个应用程序的价格。
第二个系统是一个网上商店,顾客可以在那里购买商品。
它们都运行在同一台服务器上并使用相同的 oracle 数据库。
为了提供快速访问,价格对象由 eclipselink 缓存。
如果我更改管理系统中的价格值,商店系统应刷新其缓存以获得新的价格值。
解决这个问题的最佳方法是什么?
最佳答案
我有一个类似的问题,但它与用户凭据有关。
1)在店端配置缓存
您可以将 EclipseLink 缓存配置为过期。您可以将其配置为具有
TimeToLive 或过期值。例如,您可以将价格配置为在 1、5 或 10 分钟后到期。不是即时的,但非常快速且易于实现。查看 EclipseLink 中的 @Cache 注释。这就是我最终使用的。
2) 让管理应用程序与商店应用程序通信
可能值得创建一个位于商店端的 Web 服务,该服务在调用时将使缓存无效。有点脆弱,但可能是必要的,具体取决于您的设置。
3)使用缓存协调
EclipseLink 具有缓存协调功能。我从未使用过它,但它看起来对你来说可能是最好的策略。您可以查看 EclipseLink 文档以获取更多信息。
关于caching - Eclipselink缓存问题(一个数据库两个系统),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7282357/