次のような配列にストリームを書き込む node.js スクリプトがあります。
var tempCrossSection = [];
stream.on('data', function(data) {
tempCrossSection.push(data);
});
配列を空にし、次のようにデータに対して何らかの処理を行う別のコールバック:
var crossSection = [];
setInterval(function() {
crossSection = tempCrossSection;
tempCrossSection = [];
someOtherFunction(crossSection, function(data) {
console.log(data);
}
}, 30000);
ほとんどの場合、これは機能しますが、setInterval コールバックが 30000 ミリ秒間隔で 2 回以上実行されることがあります (これは、イベント ループに置かれているキューに入れられた呼び出しではありません)。これを cronJob として実行しても、同じ結果が得られました。setInterval が 30000 ミリ秒ごとに 1 回だけ実行されるようにする方法があるかどうか疑問に思っています。おそらく、全体としてより良い解決策があります。ありがとう。