码迷,mamicode.com
首页 > 系统相关 > 详细

Node多进程相关

时间:2017-03-11 23:35:09      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:脚本   处理   node   nbsp   mongo   访问   todo   exit函数   bsp   

现状:

  目前使用child_process.fork实现多进程,一个center.js负责任务分配及相关状态管理,一个worker.js负责任务执行。

  center.js结构:

  1) 一个task_queue变量保存不同worker所需的数据

  2) 一个run函数生成多个worker并分配数据。这里需要考虑worker串行执行或并行执行,串行执行是因为有时候跑多个worker时访问公共资源(如MongoDB且数据量特别大TODO1:这里应该要使用数据库切分)会相互影响执行速度。实际上串行执行也称不上是多进程了。

  3)一个dealMessage函数处理worker返回的message

 

  worker.js结构:

  1)数据库连接,关键变量初始化

  2)fillQueue

  3)runQueue

  4) 各种处理函数

  5) exit函数处理错误以及返回

 

收获:

  1)日志的处理

  2)多进程特别是需要跑很久的程序需要良好的错误恢复机制

 

TODO:

  TODO2:每个worker.js相当于独立进程,无法通过center.js进行管控,比如:干掉center.js,worker.js还在跑,目前的方法是写了个Bash脚本来Kill掉失去控制的worker.js

  TODO3: 如何让所有worker.js共享一个大字典

Node多进程相关

标签:脚本   处理   node   nbsp   mongo   访问   todo   exit函数   bsp   

原文地址:http://www.cnblogs.com/cqq626/p/6536505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!