2012-04-21 129 views
0

我有一个命令,我需要执行三次。它产生大量的输出到标准输出,并且需要大约一分钟的时间。三个命令完成后,应该执行第四个(不同的)命令。 shell脚本应该是这样的:nodejs:多次运行长命令

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

我在想在循环中使用child_process.exec()但直到它完成的是缓冲标准输出(右?)。我需要给用户立即反馈,以便缓冲stdout超过一秒不是一个好主意。所以我需要使用child_process.spawn(),但异步处理让我有点疯狂。我正在考虑把产卵电话放在这样一个函数中:

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

这会工作,我假设。但是有更好的方法吗?我在unix上,也许在windows系统上。

回答

0

节点模块异步功能可以在一段代码中并行执行所有作业。

退房异步(https://github.com/caolan/async)

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