Django CACHEOPS不同查询集的超时时间



我使用Django CACHEOPS。cacheops的README

在settings.py中,我如何为不同的查询集配置不同的超时?

(缓存get查询集10秒,缓存queryset fetches查询集60秒)

像这样:(这显然有复制键错误)

CACHEOPS = {
'blog.Article': {'ops': 'fetch', 'timeout': 60},
'blog.Article': {'ops': 'get', 'timeout': 10},
}

我的目标是:我想缓存每篇文章的详细信息页比文章列表页长。

如您所见,CACHEOPS定义中的键是用于模型的,而不是用于查询集的

blog.Articleblog应用中的Article模型,不是查询集。

那么知道了上面的内容,你就只有解决缓存故障的办法了,那就是

CACHEOPS_DEFAULTS = {
'timeout': 60         # first level - a default
}
CACHEOPS = {
'blog.*': {'ops': 'fetch', 'timeout': 60},  # second level - a default per application
'blog.Article': {'ops': 'get', 'timeout': 10},
}

宁可使用decorator来覆盖特定模型上的特定get:

from cacheops import cached_as
@cached_as(Article, timeout=10)
def get_cached_article(...
Article.objects. ... your queryset
...

相关内容

  • 没有找到相关文章

最新更新