问题描述
有一个项目,当用户并发上去,接口就崩了,于是看了一下日志:
{ TimeoutError: ResourceRequest timed out at ResourceRequest._fireTimeout (/home/jcook/riqi_provider_directory/node_modules/sequelize/node_modules/generic-pool/lib/ResourceRequest.js:59:17) at Timeout.bound [as _onTimeout] (/home/jcook/riqi_provider_directory/node_modules/sequelize/node_modules/generic-pool/lib/ResourceRequest.js:8:15) at ontimeout (timers.js:469:11) at tryOnTimeout (timers.js:304:5) at Timer.listOnTimeout (timers.js:264:5) name: 'TimeoutError' }
问题分析
在官方的github上找到了相关issue这个 error 发生的原因通常是 某个 sql 执行很久没有 commit 导致。
https://github.com/sequelize/sequelize/issues/8133
问题解决
按照别人提供的解决方案,增加pool的配置
'pool': {
min: 0,
max: 50,
idle: 10000,
acquire: 10000,
evict: 10000,
handleDisconnects: true
},
问题暂时得以解决了,但是后来我继续提升了压测,还是会继续出错,所以还是在观察观察。
全部评论