我有一个从查询列表运行查询的代码。这些查询很长,需要很长时间才能执行。由于我是在循环中执行这些查询,因此会话似乎已过期,并且收到一条错误消息,告诉我与服务器的连接已丢失。
然后,我在循环内创建了会话以及引擎(我关闭了会话并将引擎放置在循环的末尾。)我知道创建新连接是一项昂贵的操作。
在这种情况下,如何重新使用连接,这样我不必每次都创建会话和引擎?
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()