Javascript node.js子进程生成标准输出较低的高水位线
在执行child_process.spawn时,是否有方法降低标准输出的高水位线 我读到可能有一种方法可以降低exec的值,但实际上我需要启动一个进程,我可以通过stdin传递数据,并通过stdout读取结果 highWaterMark设置为high,导致读取标准输出时出现不可接受的延迟 我已尝试通过以下方式将流对象传递到“繁殖”链接:Javascript node.js子进程生成标准输出较低的高水位线,javascript,node.js,stdout,spawn,child-process,Javascript,Node.js,Stdout,Spawn,Child Process,在执行child_process.spawn时,是否有方法降低标准输出的高水位线 我读到可能有一种方法可以降低exec的值,但实际上我需要启动一个进程,我可以通过stdin传递数据,并通过stdout读取结果 highWaterMark设置为high,导致读取标准输出时出现不可接受的延迟 我已尝试通过以下方式将流对象传递到“繁殖”链接: avconv = spawn("avconv", params, { stdio: [process.stdin, process.stdout, proc
avconv = spawn("avconv", params, {
stdio: [process.stdin, process.stdout, process.stderr]
});
这很好,但当我尝试为witch创建自己的流时,我可以定义自定义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选项的流必须有一个底层文件描述符,例如附加到文件或套接字的文件描述符。这不应该是作为第二个参数传递的
流吗<代码>进程。stdout
是一个可写流。也许您只需要将stdio切换到[readable,writable,process.stderr]
thx进行输入,实际上我已经全部尝试过了。可读、可写、双工。我实际上不知道我需要什么。可读性似乎是合乎逻辑的选择,因为我读的是标准文本-不是吗?