2012-06-25 9 views
10

Ich versuche Caching auf einem Webserver einzurichten, den ich mit Pyramid erstellt habe. Ich verwende pyramid_beaker, die ein Back-End erstellt, um Beaker für das Zwischenspeichern zu verwenden.Wie können Sie alle Regionen im Beaker-Cache in Pyramid aktualisieren?

Ich habe zwischengespeicherte Region Decorators verwendet, um das Caching zu implementieren.

Eine Probe im Cache Region sieht wie folgt aus:

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) 

Nun, da das Caching funktioniert gut und ich kann auf jeden Bereich Cache-Aktualisierung auslösen, ich frage mich, wie ich könnte alle Regionen auffrischen?

Antwort

4

Becher hat ein dict Objekt aller Cachemanager, die verwendet werden können, um iterieren jeweils zu löschen:

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

Wenn Sie in der Datei speichern, könnten Sie wahrscheinlich den Ordner löschen, der alle Caches enthält. Dies ist wahrscheinlich nicht die beste Lösung, aber es sollte ziemlich schnell und effektiv sein.