正确使用python asyncio中的sqlalChemy scope ed_session

Correct usage of sqlalchemy scoped_session with python asyncio(正确使用python asyncio中的sqlalChemy scope ed_session)

本文介绍了正确使用python asyncio中的sqlalChemy scope ed_session的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Asyncio构建一个应用程序。我将使用sqlalChemy作为orm。 据我所知,Scope_Session将一个会话与一个线程相关联,这样它们就不会与彼此的操作相关联。 现在,由于asyncio在单个线程上工作,并且我认为Scope_Session将不能正常工作,这将导致问题。 将sqlalChemical会话与Asyncio一起使用的正确方式是什么?

推荐答案

答案取决于您的代码。

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

如果您的代码具有隐式上下文,则可以将scoped_session与自定义scopefunc一起使用,如example中所示。

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

这篇关于正确使用python asyncio中的sqlalChemy scope ed_session的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:正确使用python asyncio中的sqlalChemy scope ed_session

基础教程推荐