sol*_*sol 5 javascript stdout spawn child-process node.js
有没有办法在执行 child_process.spawn 时降低 stdout 的 highWaterMark?
我读到可能有一种方法可以为 exec 降低它,但我实际上需要启动一个进程,我可以通过 stdin 将数据传递到该进程并通过 stdout 读出结果。
highWaterMark 设置为 high 导致无法接受的读取标准输出延迟。
我试图将流对象传递给 spawn 链接:
avconv = spawn("avconv", params, {
stdio: [process.stdin, process.stdout, process.stderr]
});
Run Code Online (Sandbox Code Playgroud)
效果很好,但是当我尝试为女巫创建自己的流时,我可以定义一个自定义的 highWaterMark:
var readable = new stream.Readable();
avconv = spawn("avconv", params, {
stdio: [process.stdin, readable, process.stderr]
});
Run Code Online (Sandbox Code Playgroud)
节点不会接受它。导致类型错误。
我能够通过设置以下内容来降低子 stdio 流的缓冲区:
child.stdin._writableState.highWaterMark
child.stdout._readableState.highWaterMark
Run Code Online (Sandbox Code Playgroud)
但该过程似乎还进行了其他缓冲,因此降低这些缓冲可能有也可能没有太大帮助。
文档说传递到 stdio 选项的流必须具有底层文件描述符,例如附加到文件或套接字的文件描述符。
| 归档时间: |
|
| 查看次数: |
953 次 |
| 最近记录: |