3

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 オブジェクトを破棄する必要がありますか?

4

1 に答える 1