sqlalchemyscoped_session 与 python asyncio 的正确用法

Sha*_*mux 2 python sqlalchemy python-3.x python-asyncio

我正在使用 asyncio 构建一个应用程序。我将使用 sqlalchemy 作为 orm。据我了解,scoped_session 将会话与线程关联起来,这样它们就不会相互操作。现在,由于 asyncio 在单线程上工作,我相信scoped_session 将无法正常工作,这会导致问题。将 sqlalchemy 会话与 asyncio 结合使用的正确方法是什么?

And*_*lov 6

答案取决于您的代码。

一般来说,您可以使用sessionmaker创建会话工厂并自己使用它。

如果您的代码具有隐式上下文,您可以使用scoped_session自定义,如示例scopefunc所示。

隐式上下文可以利用asyncio.Task.current_task()调用,但您还需要找到一种方法来销毁作用域会话。