我的整个节点应用程序崩溃,“未处理的承诺拒绝”SequelizeConnectionRefusedError时,由于某种原因(例如数据库负载过大)数据库拒绝连接。
我想找到一个解决方案,使应用程序不崩溃,如果可能的话,尝试重新连接。
这就是我连接数据库的方式
const db = new Sequelize(DATABASE_URL, {
logging: false,
pool: {
max: parseInt(NUMBER_PG_CONNECTIONS),
min: 1,
idle: 10000,
acquire: 30000,
},
dialectOptions: {
ssl: {
require: true,
},
},
ssl: true,
});
那么,您可以考虑nodemon
、forever
或pm2
或类似的东西--它们应该保证您的服务器保持开机状态(在崩溃后恢复)。
然而,它往往不止于此。例如,如果您失去了与数据库的连接,您真的希望节点服务器运行吗?或者,如果您的连接正在耗尽,那么可能存在一个设计问题/错误,从而导致连接泄漏?