首页 > 解决方案 > 2 小时后 postgres/psycopg2 奇怪的超时

问题描述

我们使用 psycopg2 2.7.5 调用 postgres 这样我们执行查询然后对我们收到的数据执行一些操作,然后我们打开新连接并执行另一个查询等等。

通常查询需要 15 秒到 10 分钟。

偶尔在 2 小时后我们会收到错误:Python 异常:连接已关闭

这可能是什么原因?数据相同,查询相同,有时相同的查询会在 3 分钟内返回结果,有时会在 2 小时后超时。

我想知道连接是否可能较早断开,但在 python 中,我们在 2 小时后出于某种原因获得了该信息?

我怀疑在我们执行查询时数据库上是否有任何锁定,但它可能处于巨大负载下并且可能达到最大连接数(未确认,但这是一个选项)。

追查问题的最佳方法是什么?防火墙设置为 30 分钟超时。

标签: pythonpostgresqlpsycopg2

解决方案


我们使用 psycopg2 2.7.5 调用 postgres 这样我们执行查询然后对我们收到的数据执行一些操作,然后我们打开新连接并执行另一个查询等等。

为什么你不断打开新的连接?你用旧的做什么,什么时候做?

我想知道连接是否可能较早断开,但在 python 中,我们在 2 小时后出于某种原因获得了该信息?

通常,在您尝试使用断开连接之前不会检测到它。如果您使用的是连接池,池管理器可能会在后台定期检查连接。


推荐阅读