在对我的flask API的每个请求中,我正在创建资源的新句柄。因为这些句柄非常聪明,并且可以缓存很多交互,所以这可能会浪费大量的性能。我想将手柄移到我的flask-session上。但是,如果不再使用手柄,则需要将其关闭。会话有可能吗?
我想移动这段代码
# inside a flask route
with Resource_handle() as resource_handle:
# use it
此代码
# inside a flask route
if "resource_handle" in session:
resource_handle = session["resource_handle"]
else:
resource_handle = Resource_handle()
session["resource_handle"] = resource_handle
# where do I put resource_handle.close()
据我所知,API没有涵盖这种情况。因此,我认为我将只是扩展现有会话并实现自己的资源处理会话。但这很棘手,没有end_session
回调。仅open_session
和save_session
。来源在这里:https://github.com/fengsp/flask-session/blob/master/flask_session/sessions.py
与flask-session无关,但为了使问题更精确:我不能简单地将句柄设为全局并让所有请求共享它。这是一个设计问题,我需要各个手柄不要互相影响。 (另外还有线程安全性问题。请确保这些句柄不是线程安全的。)