无法拥有全局缓存

时间:2016-02-04 11:28:05

标签: python caching dogpile.cache

我已使用dogpile [1]定义了此缓存文件。但我的问题是,当我在不同的类中调用密钥时,它无法找到该值。例如,如果我在cache.Cache.save("mykey", 123)中运行main.py,并且在执行期间我正在使用submodule.py检索另一个模块cache.Cache.get("mykey")中的值,我无法检索价值。我得到NoValue。似乎我没有为我的所有程序创建一个独特的全局缓存。

缓存的所有setget均由此模块mycache.py生成。为什么会这样?

[1] mycache.py

from dogpile.cache import make_region

region = make_region().configure('dogpile.cache.memory')
class Cache:

  @staticmethod
  def save(key, value):
    region.set(key, value)

  @staticmethod
  def get(key):
    return region.get(key)

1 个答案:

答案 0 :(得分:0)

好吧,我已经通过将缓存保存到文件中解决了这个问题。

region = make_region().configure('dogpile.cache.dbm',
                             expiration_time = 3600,
                             arguments = {
                                 "filename":"./cache_execution.dbm"
                             })