2016-09-17 6 views
0

arrayOfFunctionsは、1000以上の関数を含む配列です。各関数は、オブジェクトのメタデータを取得するためにAWS S3への非同期呼び出しを行います。async js llinを使用した非同期並列呼び出し

機能:私はそれらの機能ごとに1秒かかります一つずつ1000を実行した場合、単一の機能については

function (cb) {$.when(getMetadata("bucketname","objectkey")) 
        .done(function (data) { 
         cb(null, data) 
        }); 

、それは、メタデータを読み取るために秒未満かかります。

どのように私はasync.parallelを呼び出す:私はasync.parallelを使用している場合

async.parallel(arrayOfFunctions, function (err, result) { 
      console.log(result); 
     } 
    }); 

が、それはすべての機能が一度と平行に実行されていることを意味するのでしょうか?私はすべての結果をすぐに1-2秒で得るべきですか?

ありがとう

答えて

0

同時に開くことができる接続の数には制限があります。たとえば、Webブラウザplace a limit on this, each browser having a different limit.

通常、タスクの数が少なくても、この制限にぶつかることはなく、知覚しません。しかし、AWSからフェッチしようとしているタスクの数が1000を超える場合、おそらく1-2秒の実行時間は期待できません。

同時に画像の1000sをダウンロードしようとすると、サーバのインターネット接続がどれくらい速く1-2秒でダウンロードされなければならないかという帯域幅の制限も考慮してください。

this stackoverflow discussion

関連する問題