2012-05-01 27 views

回答

17

總之使用:process.send()

較長的例子,我寫了一段時間前名爲forktest.js

var cp = require('child_process'); 

if (!process.send) { 
    var p = cp.fork(__dirname + '/forktest'); 
    p.send({ 
    count: 10 
    }); 
    p.on('message', function(data) { 
    process.exit(0); 
    }); 
} else { 
    process.on('message', function(data) { 
    console.log(data); 
    data.count--; 
    if (data.count === 0) { 
     process.send({}); 
     process.exit(0); 
    } 
    var p = cp.fork(__dirname + '/forktest'); 
    p.send(data); 
    p.on('message', function(data) { 
     process.send(data); 
     process.exit(0); 
    }); 
    }); 
} 
+0

'如果(進程。 argv [2])'任何其他更好的方法來識別主/子 –

+3

我認爲它可能會更清晰地使用:'!process.send',如果這個過程不是另一個孩子的話。 –

+0

@DanD。不完全正確,因爲IPC可能不會被創建,並且不會有發送方法。 – senz

相關問題