dav*_*off 6 python sqlalchemy tornado
使用龙卷风,我想创建一些中间件魔法,以确保我的SQLAlchemy会话得到正确关闭/清理,以便不会将对象从一个请求共享到下一个请求.诀窍是,由于我的一些龙卷风处理程序是异步的,我不能只为每个请求共享一个会话.
因此,我将尝试创建一个知道如何为每个请求创建新会话的ScopedSession.我需要做的就是为我的代码定义一个scopefunc,它可以将当前正在执行的请求转换为某种类型的唯一键,但是我似乎无法弄清楚如何在任何一个时间点获取当前请求(外部当前RequestHandler的范围,我的函数也没有访问权限).
我能做些什么来使这项工作?
您可能希望将Session与请求本身关联(即,如果不方便,请不要使用scopedsession)。然后,您可以说request.session。仍然需要在开始/结束时具有挂钩以进行设置/拆卸。
编辑:自定义范围功能
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |