2

beaker_cache特定のコントローラーアクションのためにデコレーターによって作成されたキャッシュを無効にする必要があります。

from pylons.decorators.cache import beaker_cache

class SampleController(BaseController):

    @beaker_cache()
    def home(self):
        c.data = expensive_call()
        return render('/home.myt')

    def __clear_home_cache(self):
        pass

region_invalidate()__clear_home_cache関数内で使用できますか?

4

1 に答える 1

1

デコレータによってキャッシュされたものを無効にする方法を見つける1つの方法beaker_cacheは、それがどのように機能し、何をするかを調べることです。これはpylons.decorators.cacheモジュールで定義されています。GitHubの対応するソースファイルは次のとおりです。

基本的に、特定のコントローラーアクションの名前空間キャッシュキーを選択するロジックを探しています。これは、そのファイルのcreate_cache_key()関数によって実行されます。そして、ちなみに、その関数には役立つコメントがあります。

Example:
    from pylons import cache
    from pylons.decorators.cache import create_cache_key
    namespace, key = create_cache_key(MyController.some_method)
    cache.get_cache(namespace).remove(key)
于 2011-03-15T21:47:48.960 に答える