Node.js可写的流_write()并行执行

时间:2017-05-25 07:55:19

标签: node.js asynchronous parallel-processing stream

问题

在Node.js可写流中,有没有办法并行调用_write()?

我希望&尝试(& fail)

我希望用highWaterMark在writable._write中并行执行异步函数。

我想将多个文件(超过10,000 !!)并行上传到云端 当然,10,000并行上传导致内存溢出,所以我计划如下。

"filename" Readable-stream => "upload" Writable-steream
                     [highWaterMark](parallel limit)

所以我测试如下。

class uploadWritable extends Writable {
  constructor() {
    const options = {
      objectMode: true,
      highWaterMark: 10
    };
    super(options);
  }
  _write(filepath, encoding, callback){
    asyncUpload(filepath, callback); // When upload finished, callback is called.
  }
}

我希望如此 在parapell中调用10“asyncUpload”。当“asyncUpload”中的一个完成时,新文件来自可读流并启动“asyncUpload”。
但上面的代码导致“逐个”上传。

问题

由于我的代码,上面是否失败?
有没有办法与Node.js可写流并行执行异步函数?

0 个答案:

没有答案