如何通过 PHP 刷新池 PDO 连接


How to refresh pooled PDO connections by PHP?

我正在使用PDO连接到Postgresql DB,使用PDO::ATTR_PERSISTENT属性,这确实显着加快了应用程序的速度。

但是我遇到了一个问题,调试后发现与数据库的连接在上次SQL查询执行后大约2小时11分钟死亡!故障出在服务器之间的防火墙上,但是网络人员拒绝将限制高于24小时(说这会减慢防火墙的速度(,而我需要禁用它。

我无法通过简单的用法刷新池连接,因为我无法控制或确保所有池连接都在旋转基础上提供,确保没有连接会死亡(当服务器上有负载时,会导致难以调试的问题,并且一些连接已死,而其他连接处于活动状态(。

那么,有人对这个问题有任何建议吗? 如何保持池连接处于活动状态,除了强制网络人员为这 2 台特定服务器禁用这个愚蠢的超时规则?

谢谢!

使用

SELECT 1

作为第一个查询,如果失败,请重新连接。