繁体   English   中英

node.js child_process spawn stdout lower highWaterMark

[英]node.js child_process spawn stdout lower highWaterMark

有没有办法在执行child_process.spawn时降低stdout的highWaterMark?

我读到有可能为exec降低它,但我实际上需要启动一个进程,我可以通过stdin传递数据并通过stdout读出结果。

highWaterMark设置为高,导致读取标准输出不可接受的延迟。

我试图将流对象传递给spawn链接:

avconv = spawn("avconv", params, {
  stdio: [process.stdin, process.stdout, process.stderr]
});

哪个工作正常,但当我尝试为女巫创建我自己的流时,我可以定义一个自定义的highWaterMark:

var readable = new stream.Readable();

avconv = spawn("avconv", params, {
  stdio: [process.stdin, readable, process.stderr]
});

节点不会接受它。 导致类型错误。

通过设置以下内容,我能够降低子stdio流的缓冲区:

child.stdin._writableState.highWaterMark
child.stdout._readableState.highWaterMark

但是这个过程似乎还有其他的缓冲,因此降低这些可能会有所帮助,也可能没有多大帮助。

文档说,传递给stdio选项的流必须有一个底层文件描述符,例如附加到文件或套接字的文件描述符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM