node.js - 节点模块 pg client.end() 不关闭连接
问题描述
我的应用程序仅每 3 秒进行一次选择查询,当我运行超过 1 个具有相同应用程序数据库连接的 pod 时,有超过 20 个活动连接。
async test (text) {
const client = new Client(main_db);
await client.connect();
try {
const result = await client.query(text);
return result.rows;
} finally {
await client.end();
}
}
这是女巫用来进行查询的方法,在 git 上发布,有贡献者被告知使用此方法。
我该如何解决?
解决方案
如果您使用的是连接池,则无法end
连接。您必须将release
连接返回到池才能重新使用。
参考https://node-postgres.com/api/pool#release-err-error-
如果您为每个触发的查询创建一个新连接,那么您不应该遇到上述问题。如果您不关闭连接,则客户端不会有任何问题(类似于问题中提到的问题)。但是数据库会超载。
推荐阅读
- javascript - 如何在 React Native 中共享容器截图 | 安卓博览会
- javascript - addEventListener 回调中的错误处理
- jquery-select2 - select2 多个选项,对用户输入没有自动排序并保留所选顺序
- python - 范围中文字符和选定字符组的正则表达式
- c# - 数据为空。无法对 Null 值调用此方法或属性 - Data.SqlTypes.SqlNullValueException
- python - 在 shell 脚本中使用最低版本的 Python
- html - 重置媒体查询的元素
- python - 如何在多变量梯度下降中找到系数?
- graalvm - JaVers 是否适用于 GraalVM 原生镜像?
- unix - 查找具有文件格式的文件