Ruby PG gem连接未关闭PG gem连接未关闭

时间:2018-11-20 13:57:13

标签: ruby sinatra pg

PostgreSQL已安装在我的工作站上,并且我托管一个管理网站(Sinatra使用PG上的nginx gem),我也只能访问该网站。

我经常收到以下错误消息:

PG::ConnectionBad - FATAL:  sorry, too many clients already

max_connections确实设置为100,但是我随时在任何页面上使用两个。看着pg_stat_activity,我看到两个没有问题的简单SELECT

SELECT * FROM twils ORDER BY id DESC LIMIT 30   client backend
SELECT mdate FROM params WHERE mkey = $1    client backend

这两项都在页面有时间甚至可以渲染(可比较的速度)之前完成,因此不应保持打开状态。因此,或者我误认为我需要强行关闭这些文件,或者它们没有在页面末尾(基本上是垃圾收集)关闭。

由于PG连接是无状态的,并且不会在页面之间进行连接,因此我印象深刻的是,页面结尾意味着所有连接对于用户都是关闭的。我以为是自动的。我认为这是错误的吗?我是否要在每个连接上故意执行conn.closeconn.finish

conn = PG.connect( dbname: 'hq' )

0 个答案:

没有答案