NodeJS读取和写入线程/工人的CSV

我目前有一个nodejs脚本,它从CSV文件中读取数据,然后根据每行数据写入许多不同的CSV文件。

有300个CSV(大约40Gbs价值)处理,所以我添加asynchronous到我的脚本读取和写入数据同时跨越所有内核。

async.mapLimit(filePaths, 4, streamZip, function (err, results) { console.log('finished'); }); 

但事实certificate,这不是asynchronous。 这个代码实际上需要更多的时间来完成,而不是单独处理每个文件,因为它只使用单个核心。

似乎有许多不同的方式来使用更多的核心群集 , subprocess , networking工作者和工人农场

还有其他问题像这样问

但他们似乎都希望使用HTTP或Express,并作为服务器运行,或者他们调用像ls这样的外部程序。 而不是像在Python中那样运行一个多处理池。

任何人都可以提供一个例子或帮助如何使用线程或进程,并行读取多个CSV文件,并写入相同的fs.createWriteStreams?

谢谢

更多我的代码在这里:

 function streamZip(filePath, callback) { var stream = fs.createReadStream(filePath) .pipe(unzip.Parse()) .on('entry', function (entry) { var fileName = entry.path; entry.pipe(csvStream) }) var csvStream = csv() .on("data", function(data){ var identifier = data[0]; if (identifier === '10') { 10CSV.write(data) } else if (identifier === '11') { 11CSV.write(data) } else if (identifier === '15') { 15CSV.write(data) } }) .on("end", function(){ callback(null, filePath + 'Processed'); }); }