我代码里连接池部分的定义是这样的,但是请求5次之后,再请求,会被挂起。感觉应该是连接池没有自动释放造成的,但不知道该怎么处理。难道需要每次调用完了之后,在finally里手动释放连接?
{
"pool":{
"max": 5,
"min": 0,
"idle": 100,
"log": true
}
}
回复 (5)
K
调用完肯定要释放,不然怎么知道你确实已经用完了?释放后连接池不会立即解除连接,在过期之前若有别的代码请求就会再次返回该连接以供使用。
Q
引用 klesh调用完肯定要释放,不然怎么知道你确实已经用完了?释放后连接池不会立即解除连接,在过期之前若有别的代码请求就会再次返回该连接以供使用。
@klesh 嗯。我还是不怎么清楚sequelize的连接池到底需不需要手动去释放。我找到自己的原因了,原来是我调用了事务,某些提前结束promise的操作没有调用rollback导致的。😃
K
噢,是sequelize,那确实是不需要手动释放的。弄错了
J
@qinyang912 ,我也在做压力测试,发现sequelize提示promise操作内存溢出,这和连接池有关吗,max越大内存溢出可能性越大。
S
@qinyang912 能跟我说说你的解决方案么,感谢
参与回复
登录后即可参与回复。登录