Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 空闲postgres连接未关闭_Node.js_Postgresql - Fatal编程技术网

Node.js 空闲postgres连接未关闭

Node.js 空闲postgres连接未关闭,node.js,postgresql,Node.js,Postgresql,我正在使用节点postgres池,并且我已经设置了idleTimeoutMillis,但是空闲连接并没有关闭,它们正在堆积 const {Pool} = require('pg') pool = new Pool({ connectionString: process.env.PG_HOST, ssl: false, max: 20, idleTimeoutMillis

我正在使用节点postgres池,并且我已经设置了idleTimeoutMillis,但是空闲连接并没有关闭,它们正在堆积

const {Pool} = require('pg')
pool = new Pool({
                connectionString: process.env.PG_HOST,
                ssl: false,
                max: 20,
                idleTimeoutMillis: 1000,
                connectionTimeoutMillis: 20000,
            });

    let client;
    try {
            client = await pool.connect()
            await client.query(sqlQuery)
        } catch(err) {
            console.log(err)
            reject(err)
        } finally {
            if(client)
                client.release()
        }

虽然我在代码中的很多地方都发布了连接,但很少有地方没有关闭连接。因此,空闲连接正在堆积。但是,在idleTimeoutMillis连接应该被终止后,它们不会被终止。您是否正在将连接检查回池中?你能给出一个更完整的例子吗?@jjanes,我已经从池的角度更新了question,没有返回的连接不是空闲的。@horse\u没有名称,但当我检查pg\u stat\u活动表时,这些连接是空闲的。有没有办法在一段时间后通过代码清理未释放的连接?正如我所说:池不知道这一点。游泳池对“空闲”的看法与Postgres的“空闲”有所不同。当池认为连接处于空闲状态时(从池的角度来看),池将物理上关闭这些连接。您需要确保所有未使用的连接都正确返回到池中。这是应用程序中的一个错误。解决这个问题,而不是在其他层中尝试难看的解决方法。您是否正在检查回池中的连接?你能给出一个更完整的例子吗?@jjanes,我已经从池的角度更新了question,没有返回的连接不是空闲的。@horse\u没有名称,但当我检查pg\u stat\u活动表时,这些连接是空闲的。有没有办法在一段时间后通过代码清理未释放的连接?正如我所说:池不知道这一点。游泳池对“空闲”的看法与Postgres的“空闲”有所不同。当池认为连接处于空闲状态时(从池的角度来看),池将物理上关闭这些连接。您需要确保所有未使用的连接都正确返回到池中。这是应用程序中的一个错误。解决这个问题,而不是在其他层中尝试丑陋的解决方法。