使用psycopg2与Postgresql的连接能否保持24小时以上?

问题描述

我有一个运行24/7的机器人,可以访问Postgresql数据库。我的第一个实现会创建一个连接并为每个事务关闭它(第一次学习sql),但是我了解到创建/关闭所有这些连接都需要很长时间。
我编写了一个代码来测试差异,并得到以下结果:

>>>test.py
100 tries: 
26.547296285629272 s (non persistent)
1.3095812797546387 s (persistent)

我的问题是持久连接能否保持24小时以上?如果不能,我可以检查一下并重新连接吗?

解决方法

对连接的年龄没有固有的限制。但是,如果您通过防火墙或网关进行操作,则可能会无限期地阻止尝试保留它。当然,如果您关闭服务器进行维护或冷备份,那也会断开连接。

在PostgreSQL中“ ping”可疑连接的经典方法是发出select 1;。一些连接池程序将为您完成此任务。您可能应该使用一个,而不是发明自己的。假设您首先需要一个-建立连接的速度很慢,但它的速度应该不及您的神秘基准测试所显示的速度。