国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

node.js中cluster的使用教程

2024-05-06 15:16:07
字體:
供稿:網(wǎng)友

本文主要給大家介紹了關(guān)于node.js中cluster使用的相關(guān)教程,分享出來供大家參考學(xué)習(xí),下面來看看詳細(xì)的介紹:

一、使用NODE中cluster利用多核CPU

var cluster = require('cluster'); var http = require('http'); var numCPUs = require('os').cpus().length; if (cluster.isMaster) { // 創(chuàng)建工作進(jìn)程 for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('death', function(worker) { console.log('worker ' + worker.pid + ' died'); cluster.fork();//重啟子進(jìn)程 }); } else { // 工作進(jìn)程創(chuàng)建http 服務(wù)器 http.Server(function(req, res) { res.writeHead(200); res.end("hello world/n"); }).listen(8000); } 

二、通過消息傳遞來監(jiān)控工作進(jìn)程狀態(tài)

var cluster = require('cluster'); var http = require('http'); var numCPUs = require('os').cpus().length; var rssWarn = (12 * 1024 * 1024)   , heapWarn = (10 * 1024 * 1024) if(cluster.isMaster) {   for(var i=0; i<numCPUs; i++) {     var worker = cluster.fork();     worker.on('message', function(m) {       if (m.memory) {         console.log(m.memory.rss,rssWarn)         if(m.memory.rss > rssWarn) {           console.log('Worker ' + m.process + ' using too much memory.')         }       }      })   } } else { // 服務(wù)器   http.createServer(function(req,res) {     res.writeHead(200);     res.end('hello world/n')   }).listen(8000) // 每秒報(bào)告一次狀態(tài)   setInterval(function report(){     process.send({memory: process.memoryUsage(), process: process.pid});   }, 1000) } 

三、殺死僵尸進(jìn)程

var cluster = require('cluster'); var http = require('http'); var numCPUs = require('os').cpus().length; var rssWarn = (50 * 1024 * 1024)   , heapWarn = (50 * 1024 * 1024) var workers = {} if(cluster.isMaster) {   for(var i=0; i<numCPUs; i++) {     createWorker()   }   setInterval(function() {     var time = new Date().getTime()     for(pid in workers) {       if(workers.hasOwnProperty(pid) &&         workers[pid].lastCb + 5000 < time) {         console.log('Long running worker ' + pid + ' killed')         workers[pid].worker.kill()         delete workers[pid]         createWorker()       }     }   }, 1000) } else { // 服務(wù)器   http.Server(function(req,res) { // 打亂200 個(gè)請(qǐng)求中的1 個(gè)     if (Math.floor(Math.random() * 200) === 4) {       console.log('Stopped ' + process.pid + ' from ever finishing')       while(true) { continue }     }     res.writeHead(200);     res.end('hello world from ' + process.pid + '/n')   }).listen(8000) // 每秒鐘報(bào)告一次狀態(tài)   setInterval(function report(){     process.send({cmd: "reportMem", memory: process.memoryUsage(),       process: process.pid})   }, 1000) } function createWorker() {   var worker = cluster.fork()   console.log('Created worker: ' + worker.pid) // 允許開機(jī)時(shí)間   workers[worker.pid] = {worker:worker, lastCb: new Date().getTime()-1000}   worker.on('message', function(m) {     if(m.cmd === "reportMem") {       workers[m.process].lastCb = new Date().getTime()       if(m.memory.rss > rssWarn) {         console.log('Worker ' + m.process + ' using too much memory.')       }     }   }) }             
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 股票| 满城县| 女性| 宁波市| 习水县| 马公市| 蓝田县| 和政县| 蚌埠市| 龙门县| 库尔勒市| 西丰县| 平阳县| 隆林| 新龙县| 麦盖提县| 盐边县| 乐都县| 乐业县| 阜阳市| 封丘县| 贡山| 进贤县| 西林县| 北碚区| 手游| 普兰店市| 连云港市| 大庆市| 兴国县| 辉南县| 兴安盟| 台南县| 华亭县| 宜宾县| 山东省| 新安县| 乃东县| 盐池县| 芷江| 盐边县|