如何从axios发送大量请求



我想发送大约2000个api调用来从一些api中检索数据。如何使用axios在没有任何瓶颈的情况下存档?

2000个api调用是并行调用还是相继调用?如果是并行的,这将是非常耗费资源的,这取决于你的设备,我可能会,也可能不会。

但如果是一个接一个的,则可以通过简单的循环轻松实现。

以下是在并行实现的情况下我要做的操作:在一开始寻找最佳并行度因子时,这将是一个小小的尝试和错误。

使用lodash块将完整的2000个请求转换为大小为x的api请求对象块(参考:https://www.geeksforgeeks.org/lodash-_-chunk-method/)现在,对于每个区块,我们将并行调用api。也就是说,每个区块将按顺序排列,但在每个chuck中,我们将进行并行的api调用。

示例代码:

// Requiring the lodash module
// in the script
const _ = require("lodash");
async function _2000API_CALLS() {
const reqs = [... your 2000 request params]

// Making chunks of size 100
const chunks = _.chunk(reqs, 100) // x = 100
for(const c of chunks) {
const responses = await Promise.all(c.map(() => {
return axois... // api call logic
}))
// accumulate responses in some array if u need to store it and use it later
}
}

相关内容

  • 没有找到相关文章

最新更新