Sto cercando di utilizzare RxJS per scrivere uno script per elaborare diverse centinaia di file di registro, ognuno dei quali è di circa 1 GB. Lo scheletro dello script appare comeCome limitare la concorrenza di flatMap?
Rx.Observable.from(arrayOfLogFilePath)
.flatMap(function(logFilePath){
return Rx.Node.fromReadStream(logFilePath)
.filter(filterLogLine)
})
.groupBy(someGroupingFunc)
.map(someFurtherProcessing)
.subscribe(...)
Il codice funziona, a meno di notare che la fase di filtraggio di tutti i file di registro avrà inizio contemporaneamente. Tuttavia, dal punto di vista delle prestazioni IO del file system, è preferibile elaborare un file dopo l'altro (o almeno limitare la concorrenza a pochi file anziché aprire tutte le centinaia di file nello stesso momento). A questo proposito, come posso implementarlo in un "modo funzionale reattivo"?
Avevo pensato all'utilità di pianificazione ma non riuscivo a capire come può essere d'aiuto.
Ho la stessa domanda, ma con Rx.NET. È possibile? http://stackoverflow.com/questions/37345516/limiting-concurrent-requests-using-rx-and-selectmany – SuperJMN