首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主文件在Node.js中从辅助进程多次运行。

主文件在Node.js中从辅助进程多次运行。
EN

Stack Overflow用户
提问于 2018-03-18 21:52:21
回答 1查看 1.1K关注 0票数 0

我使用cluster.fork()在Node.js中生成工作进程。当我突然发现与启动我的应用程序多次运行的main.js文件相关的奇怪错误时,我的应用程序就开始运行了。这是我的档案:

children.js

代码语言:javascript
复制
const cluster = require('cluster');
if (cluster.isMaster) {
    console.log('starting master')
    const spawnWorker = function () {
        let worker = cluster.fork();
        return worker
    }

    exports.spawn = function (cnt) {
        for (let i = 0; i < cnt; i++) {
            console.log('spawning worker.....')
            spawnWorker()
            console.log('worker spawned')
        }
    }
}
else {
    console.log('Worker activity')
}

main.js

代码语言:javascript
复制
console.log('Main called')
global.Children = require('./children');
Children.spawn(4)
console.log('Main Finished')

运行节点main.js的输出

代码语言:javascript
复制
Main called
starting master
spawning worker.....
worker spawned
spawning worker.....
worker spawned
spawning worker.....
worker spawned
spawning worker.....
Main called
Worker activity

在这一点之后,我得到一个类型错误,Children.spawn不是一个函数,它说主已完成。

我的问题是,为什么我的main.js被第二次调用?我只想让它创建工作进程,它将依次侦听事件,并在打印“主完成”之后“停止”执行。我很感激你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-18 22:11:34

这是预期的行为,分叉的是整个过程,而不仅仅是调用cluster.fork()的模块。工作人员从流程开始就开始执行;)

集群模块应该是您的主要入口点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49353194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档