1
URLのスクリーンショットをとるNode.JSアプリケーションがあります。複数のユーザーが同時に同じURLを要求する可能性があるため、ある瞬間にURLのスクリーンショットを1回だけ取得するようにしたいと考えています。特定のパラメータの各タスクがNode.JSで1回だけ実行されることを確認する
私はそれを以下のように実装しました:私が疑問に思う何
var inProgressUrls = {};
function grabScreenshot(url) {
var inProgress = inProgressUrls[url];
if (inProgress) {
return inProgress;
}
var promise = new Promise(function(fulfill, reject) {
... grab screenshot ...
// Once done, remove the Promise from the map.
delete inProgressUrls[url];
});
inProgressUrls[url] = promise;
return promise;
}
は、私はいくつかの並行性の問題や、これを実装するためのより良い方法を欠けているかどうか?