如何刷新金字塔中烧杯缓存中的所有区域?

2024-05-14 18:46:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在我用金字塔构建的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)

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


Tags: 服务器pyramidweb区域searchreturnrequestdef
2条回答

烧杯有一个包含所有缓存管理器的dict对象,可用于迭代以清除每个缓存管理器:

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

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

相关问题 更多 >

    热门问题