我试图创建多个子叉(使用单独的工作人员js文件),并让他们与我的主要JS文件通信。
我已经试过如下:
for (var i = 1; i <= 2; i++) {
worker = childProcess.fork(path.join(__dirname, workerPath));
workers.push(worker);
worker.send("variable");
worker.on('message', function(message) {
worker.send("variable");
});
}
这正常工作与一个工人,但是,当我用两个工人,似乎创造了第二个工人时,消息监听器将被覆盖。这导致第一个工人停止,只有第二个工人继续。例如,如果我使用下面,然后工人做工精细:
worker1 = childProcess.fork(path.join(__dirname, workerPath));
worker1.send("variable");
worker1.on('message', function(message) {
worker1.send("variable");
});
worker2 = childProcess.fork(path.join(__dirname, workerPath));
worker2.send("variable");
worker2.on('message', function(message) {
worker2.send("variable");
});
该解决方案的任何?
好了,所以关键是传入工人“消息”,因为使用工人[I-1]。发送(“变量)给出一个未定义的错误的工人数:
for (var i = 1; i <= 2; i++) {
workers.push(childProcess.fork(path.join(__dirname, workerPath)));
workers[i-1].send("variable");
workers[i-1].on('message', function(message) {
workers[message-1].send("variable);
});