2012-06-25 19 views
10

Estoy intentando configurar el almacenamiento en caché en un servidor web que he construido usando Pyramid. Estoy usando pyramid_beaker, que crea un back-end para usar Beaker para el almacenamiento en caché.¿Cómo se pueden actualizar todas las regiones en la memoria caché de Beaker en Pyramid?

He estado utilizando decoradores de regiones en caché para implementar el almacenamiento en caché.

Una muestra región de caché tiene el siguiente aspecto:

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) 

Ahora que el almacenamiento en caché funciona bien y que puede desencadenar actualización de memoria caché en cada región, me preguntaba cómo podría yo actualizar todas las regiones?

Respuesta

4

cubilete tiene un objeto dict de todos CacheManagers que se pueden utilizar para iterar sobre cada uno para borrar:

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

Si estaba guardando en un archivo, probablemente podría simplemente borrar la carpeta que contiene todas las cachés. Probablemente esta no sea la mejor solución, pero debería ser bastante rápida y efectiva.

Cuestiones relacionadas