caching - 是否有一种 grails 方法来缓存 grails 域对象超时
问题描述
对于永远不会改变的表,您可以将其添加到域类中:
static mapping = {
cache true
}
然而,在现实生活中,这几乎是无用的,因为所有表都在变化,即使它很慢。例如,我们有一个货币和国家表。我们在每次请求时都会阅读它。
我们可能会添加或删除货币(例如,如果我们不再支持它们),或修改国家/地区,但这可能每月甚至一年发生一次。但是,当它被修改时,新版本必须随着服务器重新启动而被拾取。
即缓存必须有某种超时,所以它可以刷新。
grails 3是否有任何插件或解决方案?
也许一个每小时开始的工作,以及一些如何让缓存重新读取?
Grails 3.3.8(grails 4 目前不是一个选项)
解决方案
了解有关应用程序的更多信息可能会影响推荐,但一种简单的方法是让服务配置有@Cacheable
返回相关信息的方法(最好不要缓存实际实体,但在实体中缓存信息就可以了)。您可以以任何频率或响应您喜欢的应用程序中的任何事件来驱逐/更新缓存。
https://grails-plugins.github.io/grails-cache/3.0.2/index.html
推荐阅读
- intellij-idea - 我无法在 IntelliJ Idea 中设置 Spring Social ShowCase 项目
- linux - 同时使用 wget 进行多个下载
- ubuntu-18.04 - 如何从快照应用程序中打开终端?
- python - Python编程_,看不懂这是什么代码
- android - 如何使用 android studio 和 android-box 调试 android TV 应用程序?
- python - 获取 chown():从 ini 文件运行 uwsgi 时不允许操作
- java - 输入联系人并将其带到主屏幕
- amazon-web-services - AWS S3在保存对象后获取返回对象referenceID/唯一ID
- ibm-cloud - IBM Watson Conversation 和 IBM Cloud Functions:参数的用户输入
- python - 通过消除重叠或“填充”间隙来“连接”演员。碰撞检测