4

我正在使用node-mssql包在 Node.js 中创建 API 端点。

我想知道包如何处理连接池,因为在包网站上没有太多解释。

我的配置中有以下内容,以允许池增加到 10。

var config = {
  server: '',
  user: '',
  password: '',
  database: '',
  pool: {
    max: 10,
    min: 0,
    idleTimeoutMillis: 30000
  }
}

我已将这些行添加到每个请求中,因此我可以看到 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())

我已经导航到浏览器中的端点并刷新了几分钟。在 Node 控制台中,上面的每个输出都是这样的......

SQL Pool - waitingClientsCount: 0
SQL Pool - getPoolSize: 1
SQL Pool - availableObjectsCount: 0

我期望池大小会随着所有这些请求而增加。

池是否会根据负载自动配置自身,还是我误解了什么?

编辑:从外观上看,该软件包正在使用繁琐的驱动程序。

4

1 回答 1

5

在 GitHub 上的项目问题跟踪器中找到了答案:https ://github.com/patriksimek/node-mssql/issues/118#issuecomment-92522160

答案是...

Clarkey,IIRC,默认池大小为 10,如果您的请求返回得足够快……第一个连接将被简单地重用……如果您真的想测试东西,则使用 siege 之类的东西。此外,iirc 连接将在循环退出之前保持打开状态 30 或 60 秒。

于 2015-06-03T14:11:36.617 回答