2012-06-25 5 views
10

Sto provando ad installare la cache su un server web che ho creato usando Pyramid. Sto usando pyramid_beaker, che crea un back-end per utilizzare Beaker per la memorizzazione nella cache.Come è possibile aggiornare tutte le regioni nella cache Beaker in Pyramid?

Ho utilizzato i decoratori della regione memorizzati nella cache per implementare la memorizzazione nella cache.

Un campione regione cache assomiglia a questo:

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) 

Ora che il caching funziona bene e posso innescare aggiornamento della cache su ogni regione, mi chiedevo come avrei potuto aggiornare TUTTE le regioni?

risposta

4

Becher ha un oggetto dict di tutti CacheManagers che possono essere usati per scorrere per cancellare ogni:

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

Se si salvava sul file, è probabile che sia sufficiente cancellare la cartella contenente tutte le cache. Questa probabilmente non è la soluzione migliore ma dovrebbe essere abbastanza veloce ed efficace.