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 パッケージを使用しています) ?
さらに情報が必要な場合はお知らせください