我有一个用烧杯缓存装饰器修饰的功能。该功能位于一个模块中,可以从该模块导入主应用程序。
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应用程序。
答案 0 :(得分:2)
在调用 my_cached_function
之前,您需要使缓存无效。有关示例,请参阅beaker.cache.CacheManager documentation。