我有一个django rest应用程序,其中有一个函数,它使用一些外部数据(来自另一个服务)来计算一些东西,如果不需要的话,我希望避免加载。此数据定期更改,但对于一个请求来说是相同的。因此,我想缓存这个函数的结果(因为它在一个请求期间被多次调用)。我遇到了缓存函数结果的https://github.com/tvavrys/django-memoize/库,但是我只能指定一个时间,而不能指定一个上下文,在此之后缓存将失效。
我认为合理的一种可能性是以某种方式注册一个钩子,它在每次请求后清除缓存(使用delete_memoized),但我还没有找到注册这样一个钩子的方法。
因此,我的问题是:
发布于 2018-09-13 11:44:33
也许你应该试试属性
@cached_property装饰器将带有单个自参数的方法的结果缓存为属性。只要实例执行,缓存的结果就会持续存在,因此如果传递实例并随后调用函数,则缓存的结果将被返回。
https://stackoverflow.com/questions/52312788
复制相似问题