2

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

from caching import cache, my_cached_function

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

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

在另一个函数中,我尝试使缓存无效:

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

由于烧杯缓存配置为'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

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

于 2011-01-26T02:46:09.717 回答