Как ограничить параллелизм flatMap?

Я пытаюсь использовать RxJS для написания скрипта для обработки нескольких сотен файлов журналов, каждый из которых составляет около 1 ГБ. Скелет скрипта выглядит так

Rx.Observable.from(arrayOfLogFilePath)
.flatMap(function(logFilePath){
   return Rx.Node.fromReadStream(logFilePath)
   .filter(filterLogLine)
})
.groupBy(someGroupingFunc)
.map(someFurtherProcessing)
.subscribe(...)

Код работает, но обратите внимание, что этап фильтрации всех файлов журнала начнется одновременно. Однако с точки зрения производительности файловой системы предпочтительно обрабатывать один файл за другим (или, по крайней мере, ограничить параллелизм несколькими файлами, а не открывать все сотни файлов одновременно). В связи с этим, как я могу реализовать это «функционально реактивным способом»?

Я думал о планировщике, но не мог понять, как он может помочь здесь.

Ответы на вопрос(2)

Ваш ответ на вопрос