基本上我需要知道我是否可以@functools.cached_property
在 Flask-RESTPlusResource
子类中使用来缓存一个昂贵的操作或协作者构造,这些操作不应超过单个请求。
我想有两种可能:
- 为路由到该资源的每个 HTTP 请求重新创建一个
Resource
子类实例。 - 一个
Resource
子类实例在创建 API 时创建一次,并在 API 的生命周期内为路由到该资源的每个请求重用。
对象/实例上的缓存仅适用于案例 1。@cached_property
实际上是一个惰性计算的实例变量,其值在首次使用时计算并存储在实例变量中,然后在每次连续访问/调用时从该变量提供服务。我希望该机制实际上是一个描述符,但概念是相同的。
无论如何,我需要为每个请求使用不同的值,我只需要在处理单个请求的过程中多次使用它,并且我需要为该请求只计算一次该值。
会@cached_property
在 Flask-RESTPlusResource
子类上按我需要的方式工作吗?