错误:插座挂断了多个获取请求



我正在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:{errir:socket挂起"时,我们再次调用该函数,然后再次返回此错误。我们无法放弃这些请求,因此我们想知道如何解决此错误。也许可以增加最大插座数(我看到HTTP代理可能是可能的,但是我们正在使用request-Promise软件包(?

(

让我知道您是否需要更多信息

经过大量测试后,我发现这与我将请求发送给Skyscanner的API有关。我正在搜索的一些航班太长而无法检索并导致此错误。通过捕获错误修复了此问题。

最新更新