2

ビーカーキャッシュデコレータでデコレートする機能があります。この関数は、メインアプリにインポートされるモジュールにあります。

from caching import cache, my_cached_function

ここで、1つの関数で、装飾された関数を使用しました。

def index():
    data = my_cached_function() # no args

別の関数で、キャッシュを無効にしようとしています。

def new_item():
    cache.invalidate(my_cached_function, 'namespace')

Beakerキャッシュはで構成されているので'cache.type': 'memory'、私も試しました:

def new_item():
    cache.invalidate(my_cached_function, 'namespace', type='memory')

私はここで何が間違っているのですか?

ノート

典型的なシナリオでは、ほとんどの場合、index()を呼び出します。new_item()が呼び出されるたびにキャッシュをクリアして、index()呼び出しでnew_item()関数によって作成された新しいアイテムが考慮されるようにする必要があります。

問題のアプリケーションは、ボトルフレームワーク上で実行されるWebアプリケーションです。

4

1 に答える 1

2

が呼び出される前に 、キャッシュを無効にする必要があります。例については、 beaker.cache.CacheManager のドキュメントmy_cached_functionを参照してください。

于 2011-01-26T02:46:09.717 に答える