Node.js - 在不同进程中运行代码的最简单方法

时间:2011-10-19 13:31:05

标签: javascript node.js

在不同的流程中运行某些代码并将其结果与主流程进行通信的最简单方法是什么?

所以我有一个非常密集的任务需要分成不同的进程。做这样的事最简单的方法是什么?

// in main process
var otherProcess = createAnotherProcess(function() {
    console.log("this code is ran in another process");
    return "some data";
});
otherProcess.on("done", function(data) {
    console.log(data); // will output "some data"
});

拥有一个能够在多个进程中运行代码的源代码文件将是惊人的!这甚至可能吗?我已尝试在节点中阅读一些关于“child_processes”的内容,但发现它有点过于复杂。

任何帮助?

3 个答案:

答案 0 :(得分:2)

var spawn = require("child_process").spawn;
var stat = spawn("dstat", ["-r", "--noheaders", "--nocolor"]);


var output = function (output_data) {
  //do something with output_data
};

stat.stdout.on("data", output);

http://nodejs.org/docs/v0.4.11/api/child_processes.html

答案 1 :(得分:1)

要在子进程中运行某些命令,可以使用child_process.spawn方法。

如果你想运行一些繁重的JS代码,可以将它的执行拆分为块,而不是使用process.nextTick来阻止IO。

答案 2 :(得分:0)

使用dimas-parallel(在npm上):

var dimas = require('dimas-parallel);

dimas.execute(function() {
  // do some stuff on another process
});