Node.js:在集群中具有不同代码的工作者?

 手机用户2502925587 发布于 2023-02-11 03:41

我在node.js中有一个应用程序.

本申请分为3部分:

launcher.js,启动另外两个部分,并在处理清理后在崩溃/更新时重新启动它们.

app.js,自己在电脑上工作.

server.js,用于访问日志和不同的命令.

启动器的简化代码是:

var cluster = require('cluster'),
    exec = require('child_process').exec,
    server;

if (cluster.isMaster) {
    cluster.fork();
    server = exec('server.js');

    cluster.on('exit', function(worker, code, signal) {
        //Clean corrupted data, log crash if neccessary, reload source code for update ...
        cluster.fork();
    });
    server.on('exit', function () {
        //Same as for app, with a different handling of signal...
        server = exec('node server.js');
    });
} else {
    var self = require('app.js');
    self.start();
}

集群的好处在于它们与启动程序处于同一个进程中,因此我可以处理一些错误,而无需重新启动应用程序(只需在应用程序内部调用正确的函数进行"软重启"),并保持一切都在同一个过程中.

虽然有了exec,我仍然坚持重新启动服务器,有时不知道出了什么问题,这意味着有一个子shell,我不喜欢.

有没有办法分叉群集,但启动不同的代码?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有