【问题标题】:How can you refresh all regions in Beaker cache in Pyramid?如何刷新 Pyramid 中 Beaker 缓存中的所有区域?
【发布时间】:2013-01-20 05:35:35
【问题描述】:

我正在尝试在使用 Pyramid 构建的 Web 服务器上设置缓存。我正在使用pyramid_beaker,它创建了一个后端以使用Beaker 进行缓存。

我一直在使用缓存区域装饰器来实现缓存。

一个示例缓存区域如下所示:

def getThis(request):
    def invalidate_data(getData,'long_term',search_term):
         region_invalidate(getData,'long_term',search_term)
    @cached_region('long_term')
    def getData(search_term):
         return response
    try:
         request.matchdict['refresh']
    except:
         pass
    search_term = request.matchdict['searchterm']
    return getData(search_term)

现在缓存工作正常,我可以触发每个区域的缓存刷新,我想知道如何刷新所有区域?

【问题讨论】:

    标签: python pyramid beaker


    【解决方案1】:

    Beaker 有一个包含所有 CacheManager 的 dict 对象,可用于迭代以清除每个对象:

    from beaker.cache import cache_managers
    for _cache in cache_managers.values():
        _cache.clear()  
    

    【讨论】:

      【解决方案2】:

      如果您要保存到文件,您可能只是删除包含所有缓存的文件夹。这可能不是最好的解决方案,但它应该非常快速和有效。

      【讨论】:

        猜你喜欢
        • 2010-09-28
        • 2019-06-01
        • 2016-03-12
        • 2015-02-06
        • 2013-09-24
        • 1970-01-01
        • 2015-11-29
        • 1970-01-01
        相关资源
        最近更新 更多