如何创建多个子叉,并有多个消息的子进程与主进程之间发送

问题描述 投票:0回答:1

我试图创建多个子叉(使用单独的工作人员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");
       }); 

该解决方案的任何?

javascript arrays node.js child-process
1个回答
0
投票

好了,所以关键是传入工人“消息”,因为使用工人[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);
       }); 
© www.soinside.com 2019 - 2024. All rights reserved.