我的任务是将一个进程拆分为许多并行运行的较小进程,分布到多个从属机器上。请求通过 HTTP 传入,服务器将其拆分为多个子进程发送给从机,等待所有从机请求返回响应,然后将聚合结果整理成单个数据对象作为返回结果顶级请求。我认为 node.js 会很有用,但由于它是单线程的,所以我不太清楚这是否可行,或者它是否会阻塞等待每个请求返回,然后再继续下一个请求。这可能与 node.js 吗?如果是这样,有人可以指出我正确的方向吗?即要使用的 Node 模块或概述如何完成?
感谢您的帮助。
最佳答案
你可以生成 child processes 手动。
var util = require('util'),
spawn = require('child_process').spawn,
node = spawn('node', ['slave.js']);
node.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
node.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
node.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
node.stdin.write("do my work!");
我们期待实现 Web Worker API 以处理更高抽象的子进程
关于node.js - 使用 node.js 运行许多并行的 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5674077/