Requestを使用して API に接続し、一連のデータ (3,000 の API 要求を考えてください) をダウンロードするプログラムを Node と Express で作成しました (すべて API の使用制限内です)。
これを Docker コンテナーで実行すると、多くのgetaddrinfo ENOTFOUND
エラーが発生します。これはリソースの問題ではないかと考えています。私のリクエストは次のようなものです:
request.get(url, function(err, resp, body){
// do stuff with the body here,
// like create an object and handball to a worker function
});
最初の数百のリクエストでは、これは常に正常に機能しますが、その後、多くのENOTFOUND
エラーまたはタイムアウトエラーが発生します。問題は、コードがこれらすべてのリクエストを処理する方法にあると思います。
リクエストが比較的ゆっくりと発生するように、タイムアウトを使用してキューにバッチ処理しました。これは少し役立ちますが、問題を完全に解決するわけではありません。
メモリなどを解放するために body/response オブジェクトを破棄する必要がありますか?