0

我有一个使用 Yesod 和 Persistent 的网络应用程序。我正在使用默认的脚手架Foundation.hsApplication.hs. 我编写了一个处理本地 JSON 文件的函数,然后为 JSON 文件中的每个项目将一行插入到几个表中。所以它将总共执行 1000 多次插入。

在 GHCI 中运行该函数,它成功保存了一些行,然后出现以下错误:

libpq: failed (FATAL: sorry, too many clients already)

使用 postgres 查询:

select * from pg_stat_activity where datname = 'mydb-name'

我可以看到我的应用程序创建了 100 个空闲连接并且没有关闭。然后我需要终止这些连接才能做任何事情。

INSERT当查询完成时,不应该持久关闭这些连接吗?我需要做些什么不同的事情?

4

0 回答 0