我正在使用dogpile在我的python程序中有缓存。
在我的程序初始化期间,我清理缓存main
SimpleCache.set_fault_injector(NO_VALUE)
然后我用:
检索对象@staticmethod
def set_fault_injector(injector):
SimpleCache.save("fault_injector", injector)
在我的测试中,我正在检查@staticmethod
def get_fault_injector():
return SimpleCache.get("fault_injector")
injector = get_fault_injector()
变量是否设置为injector
,但比较结果是NO_VALUE
(它应该是False
)。如何检查TRUE
是否设置为injector
?我清除缓存的方式是正确的吗?
NO_VALUE
答案 0 :(得分:1)
dogpile.cache.api.NoValue
的特定实例,即NO_CACHE
此处的问题可能与您明确将缓存密钥设置为NO_CACHE
有关,这最终会导致您使用NoValue
类的2个不同实例。
在我看来,NO_CACHE
并不是真的意味着用于取消设置密钥,我相信如果您实际使用了.delete("fault_injector")
或缓存包装器提供的任何删除方法,您的问题就会得到解决