设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

深入理解Node.js 进程与线程(8000字长文彻底搞懂)(5)

发布时间:2019-08-15 16:27 所属栏目:21 来源:koala
导读:worker.js 子进程处理逻辑如下: 创建一个 server 对象,注意这里最开始并没有监听 3000 端口 通过 message 事件接收主进程 send 方法发送的消息 监听 uncaughtException 事件,捕获未处理的异常,发送自杀信息由主

worker.js 子进程处理逻辑如下:

  • 创建一个 server 对象,注意这里最开始并没有监听 3000 端口
  • 通过 message 事件接收主进程 send 方法发送的消息
  • 监听 uncaughtException 事件,捕获未处理的异常,发送自杀信息由主进程重建进程,子进程在链接关闭之后退出
  1. // worker.js 
  2. const http = require('http'); 
  3. const server = http.createServer((req, res) => { 
  4.     res.writeHead(200, { 
  5.         'Content-Type': 'text/plan' 
  6.     }); 
  7.     res.end('I am worker, pid: ' + process.pid + ', ppid: ' + process.ppid); 
  8.     throw new Error('worker process exception!'); // 测试异常进程退出、重启 
  9. }); 
  10.  
  11. let worker; 
  12. process.title = 'node-worker' 
  13. process.on('message', function (message, sendHandle) { 
  14.     if (message === 'server') { 
  15.         worker = sendHandle; 
  16.         worker.on('connection', function(socket) { 
  17.             server.emit('connection', socket); 
  18.         }); 
  19.     } 
  20. }); 
  21.  
  22. process.on('uncaughtException', function (err) { 
  23.     console.log(err); 
  24.     process.send({act: 'suicide'}); 
  25.     worker.close(function () { 
  26.         process.exit(1); 
  27.     }) 
  28. }) 

Node.js 进程守护

什么是进程守护?

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读