对集群和子进程的工作方式感到困惑

时间:2019-07-09 08:57:39

标签: javascript node.js electron

我在电子应用程序中使用了子进程。并且我仅在上一个子进程结束后才分叉子进程。而且,如果我分叉多个进程,也不会提高速度。

所以我可以在电子应用程序中使用集群模块同时分叉多个子进程。

let doneFunction = {}
let queue = createQueue(1);
this.state.files.forEach((file, i) => {
    queue.defer(function(details, done) {
        readSizeRecursive(details.path, e); // inside that i forked child
        doneFunction = done;
    }, file);
});

childFinished = () => {
    doneFunction()
}

我之前曾问过Child process maximum limit,但我没有任何答案。

  1. 如果我分叉了两个群集工具,并且派生了两个子进程工具,那么每个孩子在两个不同的群集中并行运行?

2 个答案:

答案 0 :(得分:2)

  

如果我分叉多个进程,也不会提高速度。

要提高速度,您需要加快瓶颈(在您的情况下是磁盘IO)(目录大小计算等)。 CPU比磁盘IO快得多,因此多/单线程/进程无所谓。

  

如果我分叉了两个群集工具,并且派生了两个子进程工具,那么每个孩子在两个不同的群集中并行运行?

是的,但是不会像上面提到的那样加快最终结果的速度

答案 1 :(得分:1)

您可能会从本文中更好地了解集群模式 Cluster definition in depth

但是我个人建议将Nginx用于此类操作。 Take a look in NgInx

我希望它会有所帮助。快乐编码:)