Как заставить работать аннулирующий кеш Beaker? - PullRequest
2 голосов
/ 26 января 2011

У меня есть функция, которая украшена декоратором кеша мензурки. Функция находится в модуле, из которого она импортируется в основное приложение.

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 ().

Рассматриваемое приложение - это веб-приложение, работающее поверх фреймворка бутылки.

1 Ответ

2 голосов
/ 26 января 2011

Вам необходимо аннулировать кэш до вызова my_cached_function.См. beaker.cache.CacheManager документацию для примера.

...