2011-10-09 90 views
1

我正在构建一个调用各种函数的shell脚本。当所有功能都完成后,我想关闭数据库连接并退出。我可以检查异步功能是否正在运行?

如果我能以某种方式获得一个事件,每次异步作业开始和结束我可以处理它,但那有可能吗?

回答

2

我对你的问题,困惑 你可以用这种方式async模块:

var async = require('async'); 
var exec = require('child_process').exec; 

async.parallel([ 
    //Spawn slow proccesses 
    function(cb){ exec('cat *.js bad_file | wc -l', cb) }, 
    function(cb){ exec('cat *.js bad_file2 | wc -l', cb) }, 
    function(cb){ exec('cat *.js bad_file3 | wc -l', cb) } 
], 
function(err){ 
    //If there is an error, the callback returns an error will be put in "err" 
    if(err != null) 
     console.log(err); 

    //All done, quit! 
    require("process").exit(); 
}); 
+0

可以工作,但因为我的函数调用的API,更新数据库和这样的,我需要很多的这种逻辑和大量的回调。我到目前为止做了我自己的:https://gist.github.com/1274105 – webjay

+0

我可以每隔5秒检查一次过程是否有效? – webjay

+0

你试图完成的事情还是有点朦胧。我发现NodeJs的“延续传递风格”对于知道何时完成一个作业(如果使用正确的话有一系列调用)是完美的。你能解释一下你想做什么吗? – Nican

相关问题