如何获取 Node 中当前打开的套接字的数量?
How to get a count of the current open sockets in Node?
我正在使用 request 模块来抓取 URL 列表并希望
将打开的套接字数限制为 2:
var req = request.defaults({
forever: true,
pool: {maxSockets: 1}
});
req(options, function(error, response, body) {
... code ...
done();
但是,当遍历一组 URL 并向每个 URL 发出新请求时,这似乎不起作用。
有没有办法获取当前打开的套接字数来测试一下?
我相信 maxSockets
映射到 http.Agent.maxSockets
,这限制了并发请求的数量 到同一来源 (host:port
)。
This comment,来自 request
的开发者,建议相同:
actually, pooling controls the agent passed to core. each agent holds all hosts and throttles the maxSockets per host
换句话说,你不能用它来限制一般的并发请求数。为此,您需要使用外部解决方案,例如使用 limiter
or async.queue
.
我正在使用 request 模块来抓取 URL 列表并希望 将打开的套接字数限制为 2:
var req = request.defaults({
forever: true,
pool: {maxSockets: 1}
});
req(options, function(error, response, body) {
... code ...
done();
但是,当遍历一组 URL 并向每个 URL 发出新请求时,这似乎不起作用。
有没有办法获取当前打开的套接字数来测试一下?
我相信 maxSockets
映射到 http.Agent.maxSockets
,这限制了并发请求的数量 到同一来源 (host:port
)。
This comment,来自 request
的开发者,建议相同:
actually, pooling controls the agent passed to core. each agent holds all hosts and throttles the maxSockets per host
换句话说,你不能用它来限制一般的并发请求数。为此,您需要使用外部解决方案,例如使用 limiter
or async.queue
.