Как обновить все регионы в кеше Beaker в Pyramid?

Я пытаюсь настроить кэширование на веб-сервере, который я построил с помощью Pyramid. Я использую 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)

Теперь, когда кеширование работает нормально, и я могу запускать обновление кеша для каждого региона, мне интересно, как я могу обновить ВСЕ регионы?


person user1474424    schedule 25.06.2012    source источник


Ответы (2)


У Beaker есть объект dict всех CacheManager, который можно использовать для итерации, чтобы очистить каждый:

from beaker.cache import cache_managers
for _cache in cache_managers.values():
    _cache.clear()  
person user1474424    schedule 10.01.2013

Если бы вы сохраняли в файл, вы, вероятно, могли бы просто стереть папку, содержащую все кеши. Это, вероятно, не лучшее решение, но оно должно быть довольно быстрым и эффективным.

person Loïc Faure-Lacroix    schedule 27.06.2012