当前位置: 首页 > news >正文

node express 开启多进程

const express = require('express');
const cluster = require('cluster');
const os = require('os');function formatDate() {let date = new Date();const day = date.getDate().toString().padStart(2, '0');const month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份是从0开始的const year = date.getFullYear();const hours = date.getHours().toString().padStart(2, '0');const minutes = date.getMinutes().toString().padStart(2, '0');const seconds = date.getSeconds().toString().padStart(2, '0');return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
const numCPUs = os.cpus().length;
a = undefined
if (cluster.isMaster) {// 主进程console.log(`master ${process.pid} running`);// 为每个CPU核心创建一个工作进程for (let i = 0; i < numCPUs; i++) {cluster.fork();}cluster.on('exit', (worker, code, signal) => {console.log(`工作进程 ${worker.process.pid} 已退出`);});
} else {// 工作进程const app = express();app.get('/encryptPassword', (req, res) => {let keyId = req.query.keyId;let publicKey = req.query.publicKey;let version = req.query.version;let password = req.query.password;version = isNaN(parseInt(version)) ? 0 : parseInt(version);if (keyId && publicKey && version && password) {// 调用func 返回结果func(keyId, publicKey, version, password).then(result=>{console.log(formatDate() +" "+result)res.send({status: "ok", password: result})}).catch(err=>{console.log(formatDate() +" "+err)res.send({status: "no", error: err.toString()})})} else {res.send('Error')}});app.listen(8848, () => {console.log(`worker ${process.pid} running`);});
}

http://www.mrgr.cn/news/27804.html

相关文章:

  • PCL算法汇总
  • Nuxt.js 应用中的 schema:written 事件钩子详解
  • 【微服务设计】分布式系统一致性:深入解析2PC(两阶段提交)和TCC的优势与劣势
  • Docker+Django项目部署-从Linux+Windows实战
  • UEFI学习(五)——启动框架
  • LabVIEW弧焊参数测控系统
  • C/C++内存管理
  • Sprie for .net8.0填报项目验收材料
  • (批处理)设置延时+设置关机倒计时
  • 【Linux】多路转接epoll
  • 【智路】智路OS air-edge 开发者手册 功能概述
  • 人脸防伪检测系统源码分享
  • USB组合设备——串口+鼠标+键盘
  • web安卓逆向之必学CSS基础知识
  • 笔试强训day13
  • CentO S入门必备基础知识
  • Linux07
  • 数据结构-树(基础,分类,遍历)
  • 【STM32】DAC数字模拟转换
  • Oracle从入门到放弃
  • Spring Boot集成Akka Cluster快速入门Demo
  • C语言指针和数组梳理
  • 基于双向RRT算法的三维空间最优路线规划matlab仿真
  • 北极星计划的回响:从Leap Motion到Midjourney的AI 3D硬件梦想
  • 数据库DDL语句
  • 讨论人机交互研究中大语言模型的整合与伦理问题