nodejs:多次运行long命令

时间:2012-04-21 14:59:52

标签: node.js process spawn

我有一个命令,我需要执行三次。它会向stdout生成大量输出,大约需要一分钟。三个命令完成后,应执行第四个(不同的)命令。 shell脚本如下所示:

#!/bin/sh
command arg1 arg2
command arg1 arg2
command arg1 arg2
something_else

我正在考虑在循环中使用child_process.exec()但是缓冲stdout直到它完成(对吗?)。我需要给用户提供即时反馈,因此缓冲标准输出超过一秒钟并不是一个好主意。所以我需要使用child_process.spawn(),但异步处理让我有点疯狂。我正在考虑将spawn调用放在这样的函数中:

fucnction myfunc(runs) {
   if (runs >= 1) {
       myproc = spawn(...)
       myproc.on('exit',function() { myfunc(runs - 1) })
   }
}

我认为这会奏效。但有更好的方法吗?我在unix和windows系统上。

1 个答案:

答案 0 :(得分:0)

节点模块async具有可以在一段代码中并行完成所有作业的功能。

查看异步(https://github.com/caolan/async)

还要查看群集(http://nodejs.org/docs/latest/api/cluster.html)