RxJS を使用して、それぞれ約 1 GB の数百のログ ファイルを処理するスクリプトを作成しようとしています。スクリプトのスケルトンは次のようになります
Rx.Observable.from(arrayOfLogFilePath)
.flatMap(function(logFilePath){
return Rx.Node.fromReadStream(logFilePath)
.filter(filterLogLine)
})
.groupBy(someGroupingFunc)
.map(someFurtherProcessing)
.subscribe(...)
コードは機能しますが、すべてのログ ファイルのフィルタリング手順が同時に開始されることに注意してください。ただし、ファイル システムの IO パフォーマンスの観点からは、ファイルを 1 つずつ処理することをお勧めします (または、数百のファイルすべてを同時に開くよりも、少なくとも同時実行を少数のファイルに制限することをお勧めします)。この点で、「機能的なリアクティブな方法」で実装するにはどうすればよいですか?
私はスケジューラを考えていましたが、ここでどのように役立つかわかりませんでした。