如果预 ping 检查失败,SqlAlchemy 数据库池中的预 ping 功能是否会自动重新连接并发送 SQL 命令?

Egg*_*der 5 python connection-pooling sqlalchemy

我想澄清一下 pre ping 功能如何与 SqlAlchemy 数据库池配合使用。假设我尝试使用数据库池对数据库进行 SQL 查询。如果数据库池发送预 ping 来检查连接并且连接断开,它是否会自动处理此问题?我所说的处理是指它重新连接然后发送 SQL 查询?或者我必须在我的代码中自己处理这个问题?

谢谢!

Sup*_*oot 6

来自文档来看,是的,陈旧的连接是透明处理的:

\n
\n

调用应用程序无需关心组织操作即可从池中检出的过时连接中恢复。

\n
\n

... 除非:

\n
\n

如果\xe2\x80\x9cpre ping\xe2\x80\x9d 运行时数据库仍然不可用,则\n初始连接将失败,并且\n连接失败的错误将正常传播。在数据库可用于连接但无法响应 \xe2\x80\x9cping\xe2\x80\x9d 的罕见情况下,\n\xe2\x80\x9cpre_ping\xe2\x80\x9d 将在放弃之前尝试最多三次,传播最后收到的数据库错误。

\n
\n