我已经在Dyno Heroku PostgreSQL中使用了一段时间了,但由于某些原因,它在一周前就停止了响应。我没有改变任何东西,即使在运行旧的提交时,它仍然没有响应。我不响应的意思是,当我尝试将客户端连接到数据库时,什么也没有发生。没有错误消息,没有超时,什么都没有。因此,我不能在Heroku CI中运行任何测试。我正在使用pg-node连接到DB。这是我在app.json中的代码:
{
"buildpacks": [
{ "url": "heroku/nodejs" }
],
"environments": {
"test": {
"env": { "POSTGRESQL_VERSION": "12" },
"addons": ["heroku-postgresql:in-dyno", "heroku-redis:hobby-dev"]
}
}
}这就是我连接数据库的方式:
client = new Client({
connectionString: process.env.DATABASE_URL
})
client.connect()
.then(ob => {...}
.catch(err => {...}它永远不会进入then或catch。它只是永远被卡住了。你知道为什么它突然停止工作了吗?
发布于 2021-02-10 12:39:57
有时会发生这样的情况,Postgres中的一个进程锁定并阻止您的应用程序工作。您首先需要检查是否有任何进程阻止您的应用程序工作?
此运行命令heroku pg:ps.的
根据日志输出确定卡住的进程
使用heroku pg:kill 1234 -a example_app_name终止标识后终止该进程的
1234是进程id。如果您无法识别粘滞进程id,则使用heroku pg:killall -a example_app_name.终止所有进程。
在此之后,您应该重新启动您的应用程序以移除所有以前的错误连接:heroku restart -a example_app_name
发布于 2021-02-12 02:50:38
出于某种原因,更新pg包很有帮助。
https://stackoverflow.com/questions/66128355
复制相似问题