Sequelize池相关问题
问题描述:
当使用SEAN堆栈(Sequelize,Express,Angular,Nodejs)开发的Web应用程序变为空闲状态并且用户在超时后注销时,sequelize/tedious会抛出异常。Sequelize池相关问题
任何关于sequelize连接池或数据库连接释放标准方式的指针都会有所帮助。
错误是 “资源不是该池的一部分目前” 使用
版本:
讨厌的版本2.0.0
Sequelize版本4.1.0
错误:
Unhandled rejection Error: Resource not currently part of this pool
at Pool.destroy (\node_modules\sequelize\node_modules\generic-pool\lib\Pool.js:450:35)
at Connection.<anonymous> (\node_modules\sequelize\lib\dialects\mssql\connection-manager.js:124:25)
at emitOne (events.js:77:13)
at Connection.emit (events.js:169:7)
at Connection.socketError (\node_modules\tedious\lib\connection.js:703:14)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at emitErrorNT (net.js:1257:8)
at doNTCallback2 (node.js:441:9)
at process._tickCallback (node.js:355:17)
答
我有同样的错误,但它不会导致我的应用程序崩溃。所以我加入的代码,这部分以处理:
const unhandledRejections = new Map();
process.on('unhandledRejection', (reason, p) => {
unhandledRejections.set(p, reason);
});
process.on('rejectionHandled', (p) => {
unhandledRejections.delete(p);
});
希望这将有助于...
是的,它的工作原理。谢谢。 – Amaldev
另外一个观察结果是 - 我从笔记本电脑运行应用程序进行测试,当它与网络断开连接时,它会失去与数据库的连接,并且可能导致此资源错误。添加处理程序后,不再发生。 – Amaldev