gpt4 book ai didi

plone - 使用 plone.memoize.ram 无效/防止内存

转载 作者:行者123 更新时间:2023-12-04 15:32:15 28 4
gpt4 key购买 nike

我已经和 Zope 实用程序一起使用了一种执行网络进程的方法。
由于有一段时间有效,我正在使用 plone.memoize.ram缓存结果。

MyClass(object):

@cache(cache_key)
def do_auth(self, adapter, data):
# performing expensive network process here

...和缓存功能:
def cache_key(method, utility, data):
return time() // 60 * 60))

但我想防止在 do_auth 时发生内存。调用返回空结果(或引发网络错误)。

查看 plone.memoize 代码,我似乎需要 raise ram.DontCache()异常(exception),但在此之前我需要一种方法来调查旧的缓存值。

如何从缓存存储中获取缓存数据?

最佳答案

我把它从我写的几个代码放在一起......
它没有经过测试,但可能会帮助你。

您可以使用 ICacheChooser 实用程序访问缓存数据。
它的调用方法需要您缓存的函数的虚线名称,就您而言

key = '{0}.{1}'.format(__name__, method.__name__)
cache = getUtility(ICacheChooser)(key)
storage = cache.ramcache._getStorage()._data
cached_infos = storage.get(key)

在 cached_infos 中应该有你需要的所有信息。

关于plone - 使用 plone.memoize.ram 无效/防止内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182091/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com