0

API に多くのリクエストを送信するスクリプトを Node.js で開発しています。いくつかの要求 (380 を超える要求) の後、次のエラー メッセージが表示されます。 エラー: ソケット ハングアップ (コード:ECONNRESET)。約 10000 件のリクエストを送信したいので、これはスクリプトにとって大きな問題です。これはすでに処理されているため、API のレート制限の問題ではありません。

スクリプトは OVH サーバーで実行され、パッケージ request-promise を使用してリクエストを送信します。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」がスローされた場合、関数を再度呼び出しているため、このエラーが再度返されます。これらのリクエストをあきらめるわけにはいかないため、このエラーを回避する方法を知りたいと考えています。ソケットの最大数を増やすことは可能でしょうか (http エージェントで可能であることがわかりましたが、request-promise パッケージを使用しています) ?

さらに情報が必要な場合はお知らせください

4

1 に答える 1