繁体   English   中英

多次 select 查询后,Express 服务器的 Postgres 数据库查询超时

[英]Postgres database queries from express server time out after multiple select queries

我正在运行一个节点(快速)rest API,一个 postgres 数据库和一个索引器,它在同一台服务器上填充数据库。

出于某种原因,当我从 rest api 对数据库进行大量查询时,在一定数量的查询之后,以下所有查询都开始超时。 似乎没有任何锁,我需要重新启动我的 docker 容器以使数据库再次返回。

我在我的 rest api 中添加了一些日志,以查看似乎超时的地方:

        console.log("get here1")
        pool.query(totalQuery, [], (error, results) => {
                console.log("get here2");
                if (error) {
                        console.error(error)
                        res.status(404).json(error)
                }

                const total_markets = results.rows[0] ? results.rows[0].total_markets : 0;

                pool.query(query, values, (error, results) => {
                        console.log("get here3");
                  if (error) {
                          console.error(error)
                          res.status(404).json(error)
                  }

                  res.status(200).json({count: total_markets, data: results.rows})
          })
        });

服务器日志如下:

get here2
get here3
get here
get here2
get here3
get here
get here
get here
get here

我真的不确定是什么导致我的查询超时,但似乎整个数据库都无法访问。

当我附加到 docker 容器并使用psql查询数据库时,查询工作正常。

原来这是一个 node.js(pg 更具体的问题)

我在池配置中添加了超时属性:

const pool = new Pool({
  connectionString: process.env.CONNECTION_STRING ? process.env.CONNECTION_STRING : connectionString,
  ssl: production,
  max : 5,
  connectionTimeoutMillis : 5000,
  idleTimeoutMillis : 30000
});```

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM