2012-06-25 52 views
10

我想在我使用金字塔構建的Web服務器上設置緩存。我使用的是pyramid_beaker,它創建了一個使用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) 

現在緩存工作正常,我可以在每個區域觸發緩存刷新,我想知道我怎麼可能會刷新所有地區?

回答

4

燒杯具有可以用於迭代以清除每個所有CacheManagers的一個字典對象:

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

如果您保存到文件,您可能只需擦除包含所有緩存的文件夾。這可能不是最好的解決方案,但它應該非常快速和有效。