tornado 能否使用SqlAlchemy 的 scoped_session ?
没试过,很可能不行,tornado是单线程的,如果需要使用session的话最好用redis自己做一个
scoped_session
是sqlalchemy
处理数据库的链接入口,可以理解为sqlalchemy
的数据库链接的游标。这个东西本身是线程安全的。可是如果tornado
作为wsgi server
,本身也是单线程。有可能有问题。
当然,即使是单线程,如果每个scoped_session
绑定的是一个request
,应该也是安全的,题主可以测试。有两篇文章介绍了使用方法:
Integrating SqlAlchemy with Tornado
Scoping SQLAlchemy's Session while using Tornado.gen
还有另外一个 oz 库,作者写了很多用于tornado
的scaffold
。其中就有关于sqlalchemy
的使用的middleware
。