0

7000 ユーザーのアレイ リストがあります。

7000 人のユーザーごとに、GET 要求を行う必要があります。

コードは実行されますが、多くのリクエストで次のエラーが発生します。

"ENFILE"
"ENFILE"
"connect"
"10.10.12.72"
80

リクエストを抑制する必要があると思いますが、どうすればよいか正確にはわかりません。

コードは次のとおりです。

users は 7000 エントリの配列です。

  users.forEach((user) => {
    axios({
      url: getUserRolesEndpoint + `${user.userId}`,
      method: 'get',
      timeout: 10000,
    })
    .then((response) => {
        // I do something with the response
    });
  });
4

1 に答える 1

0

ライブラリの「リミッター」が私の問題を修正したようです:

 const RateLimiter = require('limiter').RateLimiter;
 const limiter = new RateLimiter(5, 'second');

 users.forEach((user) => {
    limiter.removeTokens(1, (errd, remainingRequests) => {
       axios({
         url: getUserRolesEndpoint + `${user.userId}`,
         method: 'get',
         timeout: 10000,
       })
       .then((response) => {
          // I do something with the response
       });
    });
 });
于 2016-03-22T13:28:07.087 に答える