【问题标题】:Python - Mako templates - How to invalidate cache?Python - Mako 模板 - 如何使缓存无效?
【发布时间】:2013-07-03 06:57:01
【问题描述】:

我的一个页面有一个使用此密钥生成的块:

<%block cached="True" cache_key="${(month, year, timezone, admin)}">

为了使特定的月份/年份无效,我遍历所有时区/管理员(大约 50 个)调用:

template.cache.invalidate((month, year, timezone, admin))

有时我想使整个块无效。我不想遍历月/年/时区/管理员的所有值,因为这将花费很长时间。

有什么简单的方法可以做到吗?

我愿意让这个模板的整个缓存失效。

我正在使用 Beaker 后端。我希望 Mako 有办法完成这些基本任务,但如果有必要,我愿意直接使用 Beaker。

【问题讨论】:

    标签: python caching mako beaker


    【解决方案1】:

    目前我正在使用这个 Beaker 特定代码来清除特定模板的整个缓存:

    kw = template.cache._get_cache_kw({}, None)
    cache = self.cache_manager.get_cache(template.cache.impl.cache.id, **kw)
    cache.clear()
    

    我不敢相信 Mako 没有对这个操作的基本支持......我忽略了什么吗?

    【讨论】:

      猜你喜欢
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 2016-06-29
      • 2010-09-28
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      相关资源
      最近更新 更多