【发布时间】:2021-10-27 03:07:11
【问题描述】:
基本上,我需要知道我是否可以在 Flask-RESTPlus 中使用 @functools.cached_property Resource 子类来缓存一个昂贵的操作或协作者构造,这些操作不应超过单个请求。
我认为有两种可能:
-
Resource子类实例为路由到该资源的每个 HTTP 请求重新创建。 -
Resource子类实例在构建 API 时创建一次,并在 API 的生命周期内为路由到该资源的每个请求重用。
对象/实例上的缓存仅适用于情况 1。@cached_property 实际上是一个惰性计算的实例变量,它的值在第一次使用时计算并存储在实例变量中,然后在每次连续时从该变量提供访问/呼叫。我希望机制实际上是一个描述符,但概念是一样的。
无论如何,我需要为每个请求使用不同的值,我只需要在处理单个请求的过程中多次使用它,并且我需要为该请求只计算一次该值。
@cached_property 会在 Flask-RESTPlus Resource 子类上按我需要的方式工作吗?
【问题讨论】:
标签: flask-restplus flask-restx