http リクエストが中間結果をサーバーにキャッシュしているユースケースがあります。キャッシュが存在しない場合、リクエストは別のサーバーをリクエストしてキャッシュを構築します。
これらのリクエストは、AJAX to Node Server を使用して連続して (ループ) 起動され、リクエストの数は 50 から 500 の範囲になります。
問題: リクエストがループ内で行われ、キャッシュがまだ存在しないため、最初のいくつかのリクエストがすべてキャッシュを構築しようとし、その後のリクエストで半構築されたキャッシュが検出され、間違った結果が返されることがあります。
ポーリングでこの問題を回避できます。
(function next(){
if(!wait){
fs.readFile(cacheFile, function(err){
if(err) {
wait = true;
createCache(); // sets wait = false;
} else {
useCache();
}
});
} else {
setTimeout(next,waitTime);
}
})();
私の質問: リクエストをポーリングせずに停止し、最初のリクエストがキャッシュ構築プロセスを完了した後にのみ続行できますか?