Cla*_*key 4 sql-server node.js node-mssql
我正在使用node-mssql包在 Node.js 中创建 API 端点。
我想知道该包如何处理连接池,因为该包网站上对此没有太多解释。
我的配置中有以下内容,允许池最多为 10 个。
var config = {
server: '',
user: '',
password: '',
database: '',
pool: {
max: 10,
min: 0,
idleTimeoutMillis: 30000
}
}
Run Code Online (Sandbox Code Playgroud)
我已将这些行添加到每个请求中,这样我就可以看到 Node 控制台中发生了什么......
// Dump info about connection pool
console.log('SQL Pool - waitingClientsCount: ' + connection.pool.waitingClientsCount())
console.log('SQL Pool - getPoolSize: ' + connection.pool.getPoolSize())
console.log('SQL Pool - availableObjectsCount: ' + connection.pool.availableObjectsCount())
Run Code Online (Sandbox Code Playgroud)
我已导航到浏览器中的端点并保持刷新了好几分钟。在 Node 控制台中,上面的每个输出都是这样的......
SQL Pool - waitingClientsCount: 0
SQL Pool - getPoolSize: 1
SQL Pool - availableObjectsCount: 0
Run Code Online (Sandbox Code Playgroud)
我预计池的大小会随着所有这些请求而增加。
池是否会根据负载自动配置自身,或者我是否误解了什么?
编辑:从外观上看,该包正在使用 Tedious 驱动程序。
在 GitHub 上的问题跟踪器项目中找到了答案:https://github.com/patriksimek/node-mssql/issues/118#issuecomment-92522160
答案是...
Clarkey,IIRC 默认池大小为 10,如果您的请求返回得足够快...第一个连接将被简单地重用...如果您确实想测试一些东西,则使用像 siege 这样的东西。此外,iirc 连接将保持打开状态大约 30 或 60 秒,然后再循环退出。
| 归档时间: |
|
| 查看次数: |
4443 次 |
| 最近记录: |