CNode

有谁遇到过sequelize连接池释放的问题吗

问答
Qqinyang912发布于11 年前最后回复8 年前5 回复6884 浏览0 收藏

我代码里连接池部分的定义是这样的,但是请求5次之后,再请求,会被挂起。感觉应该是连接池没有自动释放造成的,但不知道该怎么处理。难道需要每次调用完了之后,在finally里手动释放连接?

{
      "pool":{
			"max": 5,
			"min": 0,
			"idle": 100,
			"log": true
		  }
  }
查看回复

回复 (5)

K
klesh#1·11 年前

调用完肯定要释放,不然怎么知道你确实已经用完了?释放后连接池不会立即解除连接,在过期之前若有别的代码请求就会再次返回该连接以供使用。

Q
qinyang912#2·11 年前
引用 klesh调用完肯定要释放,不然怎么知道你确实已经用完了?释放后连接池不会立即解除连接,在过期之前若有别的代码请求就会再次返回该连接以供使用。

@klesh 嗯。我还是不怎么清楚sequelize的连接池到底需不需要手动去释放。我找到自己的原因了,原来是我调用了事务,某些提前结束promise的操作没有调用rollback导致的。😃

K
klesh#3·11 年前

噢,是sequelize,那确实是不需要手动释放的。弄错了

J
jiangliqin#4·10 年前

@qinyang912 ,我也在做压力测试,发现sequelize提示promise操作内存溢出,这和连接池有关吗,max越大内存溢出可能性越大。

S
songjian925#5·8 年前

@qinyang912 能跟我说说你的解决方案么,感谢

参与回复
登录后即可参与回复。登录