首页 > 解决方案 > 是否有一种 gr​​ails 方法来缓存 grails 域对象超时

问题描述

对于永远不会改变的表,您可以将其添加到域类中:

static mapping = {
    cache true
}

然而,在现实生活中,这几乎是无用的,因为所有表都在变化,即使它很慢。例如,我们有一个货币和国家表。我们在每次请求时都会阅读它。

我们可能会添加或删除货币(例如,如果我们不再支持它们),或修改国家/地区,但这可能每月甚至一年发生一次。但是,当它被修改时,新版本必须随着服务器重新启动而被拾取。

即缓存必须有某种超时,所以它可以刷新。

grails 3是否有任何插件或解决方案?

也许一个每小时开始的工作,以及一些如何让缓存重新读取?

Grails 3.3.8(grails 4 目前不是一个选项)

标签: cachinggrailsgrails3

解决方案


了解有关应用程序的更多信息可能会影响推荐,但一种简单的方法是让服务配置有@Cacheable返回相关信息的方法(最好不要缓存实际实体,但在实体中缓存​​信息就可以了)。您可以以任何频率或响应您喜欢的应用程序中的任何事件来驱逐/更新缓存。

https://grails-plugins.github.io/grails-cache/3.0.2/index.html


推荐阅读