gpt4 book ai didi

python - SQLAlchemy+ Tornado : How to create a scopefunc for SQLAlchemy's ScopedSession?

转载 作者:太空狗 更新时间:2023-10-30 00:03:59 25 4
gpt4 key购买 nike

使用 tornado,我想创建一些中间件魔法,确保我的 SQLAlchemy session 得到正确关闭/清理,这样对象就不会从一个请求共享到下一个请求。诀窍在于,由于我的一些 Tornado 处理程序是异步的,所以我不能只为每个请求共享一个 session 。

所以我只能尝试创建一个知道如何为每个请求创建新 session 的 ScopedSession。我需要做的就是为我的代码定义一个 scopefunc,它可以将当前正在执行的请求变成某种唯一的键,但是我似乎无法弄清楚如何获取当前请求任何一个时间点(在当前 RequestHandler 的范围之外,我的函数都无法访问它)。

有什么我可以做的吗?

最佳答案

您可能希望将 Session 与请求本身相关联(即,如果不方便,请不要使用 scopedsession)。然后你可以说,request.session。仍然需要在开始/结束时有 Hook 以进行设置/拆卸。

编辑:自定义作用域函数

def get_current_tornado_request():
# TODO: ask on the Tornado mailing list how
# to acquire the request currently being invoked

Session = scoped_session(sessionmaker(), scopefunc=get_current_tornado_request)

关于python - SQLAlchemy+ Tornado : How to create a scopefunc for SQLAlchemy's ScopedSession?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8674984/

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