【问题标题】:Close and re-connect SQLAlchemy session's database connection?关闭并重新连接 SQLAlchemy 会话的数据库连接?
【发布时间】:2011-07-29 16:15:27
【问题描述】:

假设我们在从 SQLAlchemy 会话中加载一些对象后需要做一些长时间的计算,我们想在计算过程中关闭数据库连接,然后重新连接到数据库。在 SQLAlchemy 中怎么做?

或者,是否需要每次关闭会话并重新创建一个,然后合并/重新加载所有相关对象?但我发现session.close() 没有关闭连接,即使session.connection().close() 或关闭绑定到会话的连接也不会关闭它。那么如何在使用会话之后和退出应用程序之前关闭连接?

【问题讨论】:

  • 如果您认为已回答,请将问题标记为已回答。

标签: sqlalchemy


【解决方案1】:

从 SQLAlchemy Google Group 得到答案:在终止正在进行的事务后使用 session.bind.dispose()。它处理整个连接池,因此所有数据库连接都关闭。

我可以举行会议,例如提交或回滚会话而不是关闭它。当我以后需要使用它时,它会自动进行必要的连接。这种方法使我不必重新创建会话和合并对象。

【讨论】:

  • 嗨 Gary,就我而言,它仍然没有关闭 MySQL 连接(我可以看到添加了一个新进程(使用 showprocesslist;),尽管在 sleep 模式下,即使我使用 @ 987654324@)。有什么建议吗?
猜你喜欢
  • 2014-07-08
  • 2019-03-30
  • 1970-01-01
  • 2021-06-30
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
相关资源
最近更新 更多