Error : Socket hang up on multiple get requests
Error : Socket hang up on multiple get requests
我正在 Node.js 上开发一个脚本,它向 API 发送大量请求。几次请求(超过 380 次请求)后,我们收到以下错误消息:错误:套接字挂起(代码:ECONNRESET)。这对我们的脚本来说是个大问题,因为我们想发送大约 10000 个请求。
这不是 API 速率限制的问题,因为我们已经在处理这个问题。
我们的脚本在 OVH 服务器上 运行,我们使用请求承诺包发送请求。我们的 Node.js 版本是 v 9.9.0。
这是抛出错误的函数:
const pollSession = async (sessionUrl) => {
let session;
try {
session = await rp.get({ url: sessionUrl, json: true }, (err, res, body) => {
if (err) {
console.log('Err: ', err);
} else {
DEBUG && console.log("Status code: ",res && res.statusCode);
DEBUG && console.log("Status: ",res && res.body && res.body.Status);
statusCode = res && res.statusCode;
status = res && res.body && res.body.Status;
}
});
} catch (e) {
console.log ("----- pollSession : in catch with return value :"+e);
return e;
}
return session;
}
当请求运行时,我们会多次调用此函数以获得完整的响应(因为响应很大)。
当抛出错误 "Err: { Error: socket hang up" 时,我们再次调用该函数,它再次 returns 这个错误。我们不能放弃这些请求,因此我们想知道如何解决此错误。也许可以增加套接字的最大数量(我看到它可以使用 http 代理,但我们使用的是请求承诺包)?
如果您需要更多信息,请告诉我
经过大量测试,我发现这与我向 Skyscanner 发送请求以供记录的 API 有关。我正在搜索的某些航班太长而无法检索并导致此错误。通过捕获错误修复了此问题。
我正在 Node.js 上开发一个脚本,它向 API 发送大量请求。几次请求(超过 380 次请求)后,我们收到以下错误消息:错误:套接字挂起(代码:ECONNRESET)。这对我们的脚本来说是个大问题,因为我们想发送大约 10000 个请求。 这不是 API 速率限制的问题,因为我们已经在处理这个问题。
我们的脚本在 OVH 服务器上 运行,我们使用请求承诺包发送请求。我们的 Node.js 版本是 v 9.9.0。
这是抛出错误的函数:
const pollSession = async (sessionUrl) => {
let session;
try {
session = await rp.get({ url: sessionUrl, json: true }, (err, res, body) => {
if (err) {
console.log('Err: ', err);
} else {
DEBUG && console.log("Status code: ",res && res.statusCode);
DEBUG && console.log("Status: ",res && res.body && res.body.Status);
statusCode = res && res.statusCode;
status = res && res.body && res.body.Status;
}
});
} catch (e) {
console.log ("----- pollSession : in catch with return value :"+e);
return e;
}
return session;
}
当请求运行时,我们会多次调用此函数以获得完整的响应(因为响应很大)。
当抛出错误 "Err: { Error: socket hang up" 时,我们再次调用该函数,它再次 returns 这个错误。我们不能放弃这些请求,因此我们想知道如何解决此错误。也许可以增加套接字的最大数量(我看到它可以使用 http 代理,但我们使用的是请求承诺包)?
如果您需要更多信息,请告诉我
经过大量测试,我发现这与我向 Skyscanner 发送请求以供记录的 API 有关。我正在搜索的某些航班太长而无法检索并导致此错误。通过捕获错误修复了此问题。