我有一个生成的动态网址列表(大约30-40),我想通过http.get()
获取并保存为文件。
我想确保并非所有这些都一次运行,因为我不想压倒我的实用程序客户端应用程序,也不想服务器。
如何限制这些请求的运行次数?
答案 0 :(得分:1)
使用async
模块,您可以使用parallelLimit()
。您可以指定最大同时请求。
一次最多三个请求的示例(请注意您需要调整它):
const http = require('http')
const async = require('async')
const urls = [ /* array of urls */ ]
const fns = urls.map(url => {
return cb => {
http.get(url, res => {
// handle res, call cb() when done
cb()
})
}
})
async.parallelLimit(fns, 3, err => {})