SqlAlchemy数据库池中的预ping功能是否会在预ping检查失败的情况下自动重新连接并发送SQL命令



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

谢谢!

从文档来看,是的,过时的连接是透明处理的:

调用应用程序不需要关心组织操作,以便能够从池中签出的陈旧连接中恢复。

。。。除非:

如果在运行"预ping"时数据库仍然不可用,则初始连接将失败,连接失败的错误为正常传播。在数据库可用于连接,但无法响应"ping"pre_ping"在放弃之前最多会尝试三次,传播上次收到的数据库错误。

最新更新