在开发中想使用连接池 在网上找到了一段代码 但是自己测试的时候发现了些问题 当我把setTimeout中的语句数量变成五条以上的时候 nodejs会首先执行五条 然后过一段时间才会执行剩下的 而且好像server_options的pool_size:1好像也没有奇效 不知道这个是什么问题 要怎么做修改 代码如下:
其实你的问题跟 mongodb 和连接池都没有关系,是你的测试方法不对。
http.get 默认最多同时发起 5 个请求,超过的请求会排队。你如果需要更多请求,修改 http.globalAgent.maxSockets 的值就行,比如 20。
你的 http.get 调用写的也有问题,你需要用下面代码把 res 全部数据读完 http.get 才会释放连接:
res.on('data', function (chunk) {
// use chunk
});
另外,如果我没记错的话,通过 mongodb.Server 创建的实例本身就是带连接池的,连接池大小通过 poolSize 设置。你直接从这个 server 不断创建 db 并使用就行,不需要手动创建并管理多个 server 实例,多此一举了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。