Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can you refresh all regions in Beaker cache in Pyramid?

I am trying to setup caching on a web server I have built using Pyramid. I am using pyramid_beaker, which creates a back-end to use Beaker for caching.

I have been using cached region decorators to implement the caching.

A sample cached region looks like this:

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)

Now that the caching works fine and I can trigger cache refresh on each region, I was wondering how I might refresh ALL regions?

like image 743
user1474424 Avatar asked Jun 25 '12 10:06

user1474424


1 Answers

Beaker has a dict object of all CacheManagers that can be used to iterate over to clear each:

from beaker.cache import cache_managers
for _cache in cache_managers.values():
    _cache.clear()  
like image 104
user1474424 Avatar answered Oct 14 '22 08:10

user1474424