如何在sqlalchemy中保持会话长时间处于活动状态?

时间:2019-04-05 08:14:07

标签: python session sqlalchemy

我有一个从查询列表运行查询的代码。这些查询很长,需要很长时间才能执行。由于我是在循环中执行这些查询,因此会话似乎已过期,并且收到一条错误消息,告诉我与服务器的连接已丢失。

然后,我在循环内创建了会话以及引擎(我关闭了会话并将引擎放置在循环的末尾。)我知道创建新连接是一项昂贵的操作。

在这种情况下,如何重新使用连接,这样我不必每次都创建会话和引擎?


from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

# an Engine, which the Session will use for connection
# resources
some_engine = create_engine('mysql://user:password@localhost/')

# create a configured "Session" class
Session = sessionmaker(bind=some_engine)

# create a Session
session = Session()

for long_query in long_query_list:
    # work with sess
      session.execute(long_query)
      session.commit()

0 个答案:

没有答案