如何使Beaker缓存无效?

时间:2011-01-25 22:51:31

标签: python caching bottle beaker

我有一个用烧杯缓存装饰器修饰的功能。该功能位于一个模块中,可以从该模块导入主应用程序。

from caching import cache, my_cached_function

现在,我在一个函数中使用了修饰函数:

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应用程序。

1 个答案:

答案 0 :(得分:2)

在调用 my_cached_function之前,您需要使缓存无效。有关示例,请参阅beaker.cache.CacheManager documentation