UNPKG

mm_os

Version:

MM_OS服务端架构,用于快速构建应用程序,支持网站建设、小程序后台、AI应用、物联网(IOT/AIOT)、游戏服务端等多种场景。

57 lines (51 loc) 1.34 kB
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 };