mm_os
Version:
MM_OS服务端架构,用于快速构建应用程序,支持网站建设、小程序后台、AI应用、物联网(IOT/AIOT)、游戏服务端等多种场景。
57 lines (51 loc) • 1.34 kB
JavaScript
const cluster = require('cluster');
const os = require('os');
const { Server } = require('./server.js');
/**
* 操作系统核心类
*/
class MM_os {
/**
* 构造函数
* @param {object} config 配置对象
*/
constructor(config) {
this.config = config;
this.server = null;
this.num_cpus = os.cpus().length;
}
/**
* 初始化方法
* @returns {Promise<void>}
*/
async init() {
if (cluster.isPrimary) {
console.log(`主进程 ${process.pid} 正在运行,创建 ${this.num_cpus} 个工作进程`);
for (let i = 0; i < this.num_cpus; i++) {
cluster.fork();
}
cluster.on('exit', (worker) => {
console.log(`工作进程 ${worker.process.pid} 已退出,正在重启...`);
cluster.fork();
});
} else {
this.server = new Server(this.config);
await this.server.init();
}
}
/**
* 启动方法
* @returns {Promise<void>}
*/
async start() {
if (cluster.isPrimary) {
console.log(`主进程 ${process.pid} 已启动,管理 ${this.num_cpus} 个工作进程`);
} else {
if (!this.server) {
throw new Error('请先调用 init() 方法初始化');
}
await this.server.start();
}
}
}
module.exports = { MM_os };