python - 2 小时后 postgres/psycopg2 奇怪的超时
问题描述
我们使用 psycopg2 2.7.5 调用 postgres 这样我们执行查询然后对我们收到的数据执行一些操作,然后我们打开新连接并执行另一个查询等等。
通常查询需要 15 秒到 10 分钟。
偶尔在 2 小时后我们会收到错误:Python 异常:连接已关闭
这可能是什么原因?数据相同,查询相同,有时相同的查询会在 3 分钟内返回结果,有时会在 2 小时后超时。
我想知道连接是否可能较早断开,但在 python 中,我们在 2 小时后出于某种原因获得了该信息?
我怀疑在我们执行查询时数据库上是否有任何锁定,但它可能处于巨大负载下并且可能达到最大连接数(未确认,但这是一个选项)。
追查问题的最佳方法是什么?防火墙设置为 30 分钟超时。
解决方案
我们使用 psycopg2 2.7.5 调用 postgres 这样我们执行查询然后对我们收到的数据执行一些操作,然后我们打开新连接并执行另一个查询等等。
为什么你不断打开新的连接?你用旧的做什么,什么时候做?
我想知道连接是否可能较早断开,但在 python 中,我们在 2 小时后出于某种原因获得了该信息?
通常,在您尝试使用断开连接之前不会检测到它。如果您使用的是连接池,池管理器可能会在后台定期检查连接。
推荐阅读
- google-sheets - 使用谷歌表格中的计算字段和总和进行查询
- java - Java 无法返回 JSONArray:意外的返回值
- core-data - SwiftUI:使用 Core Data 关系数组的更改更新 View
- csv - 如何从我的 Heroku 下载 csv 更改
- google-chrome - Chrome 扩展模拟键盘输入
- c++ - 如何在一个类中定义一个包含 n 个元素的数组
- assembly - 反转堆栈元素 MIPS 逻辑错误
- firebase - 通知抛出firebase工作但没有声音
- mysql - MYSQL从具有交错ID的表中选择行
- json.net - JSON Schema Validation Online vs C# 无法解析模式引用