您可以制作一个本地C程序,并让节点执行二进制文件,并在完成时执行回调。我觉得有几个方法,下面是nodejitsu复制的child_process.exec(command, [options], callback)
一个例子:
var childProcess = require('child_process'),
ls;
ls = childProcess.exec('ls -l', function (error, stdout, stderr) {
if (error) {
console.log(error.stack);
console.log('Error code: '+error.code);
console.log('Signal received: '+error.signal);
}
console.log('Child Process STDOUT: '+stdout);
console.log('Child Process STDERR: '+stderr);
});
ls.on('exit', function (code) {
console.log('Child process exited with exit code '+code);
});
编辑
如果需要启动它后,通过输入到你的过程中,使用child_process.spawn
代替。
节点可以很好地处理Apache的任务;我使用express来托管文件和动态页面;我的应用程序逻辑是当特定的HTTP请求被做成特定路由时由Express调用的JavaScript代码。
除非限制同时计算,否则可能会使机器停止工作。我对线程池没有任何知识或评论。 caolan/async可以帮助管理并发计算(和其他控制流任务)。
这似乎只适用于独立的可执行文件?我真的需要能够调用一个函数并传入并获取复杂的数据。有没有办法做到这一点? – user265445 2013-05-01 09:37:47
我认为这是可能的,我没有任何进一步的知识 - gl! – Plato 2013-05-01 16:40:35