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

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

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

Ответ 1

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

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

Ответ 2

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