10

Pyramidを使用して構築した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

2 に答える 2

4

Beakerには、すべてのCacheManagerのdictオブジェクトがあり、これを使用して、それぞれをクリアするために反復処理できます。

from beaker.cache import cache_managers
for _cache in cache_managers.values():
    _cache.clear()  
于 2013-01-10T04:56:42.537 に答える
0

ファイルに保存する場合は、すべてのキャッシュを含むフォルダーを消去するだけで済みます。これはおそらく最善の解決策ではありませんが、かなり高速で効果的であるはずです。

于 2012-06-27T15:17:24.853 に答える