javascript – 限制节点js中的并行http请求数

前端之家收集整理的这篇文章主要介绍了javascript – 限制节点js中的并行http请求数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,大家好,我是节点js的新手.

我有一个脚本,我在循环中启动了几个http请求
假设我必须发出1000个http请求.
问题是我每个IP只能做一个http请求而我只有10个IP

因此,在10个并行请求之后,我必须等待响应才能生成另一个请求.

如何在不阻止脚本响应的情况下从http请求启动另一个响应请求?

我的问题是,如果我执行一段时间等待免费IP我的整个脚本被阻止,我没有收到任何响应.

谢谢.

解决方法

为此,请使用 async模块.

您可以使用async#eachLimit将并发请求限制为10.

var urls = [
  // a list of 100 urls
];

function makeRequest(url,callback) {
  /* make a http request */
  callback(); // when done,callback
}

async.eachLimit(urls,10,makeRequest,function(err) {
  if(err) throw err;
});

代码将遍历url列表并为每个url调用makeRequest.它将停止在10个并发请求中,并且不会继续第11个请求,直到前10个请求中的一个完成.

猜你在找的JavaScript相关文章