1.0.2 • Published 7 years ago

squad.js v1.0.2

Weekly downloads
2
License
ISC
Repository
-
Last release
7 years ago

##squad 这是一个封装cluster的库,由于cluster由一个master(主进程)以及多个worker(子进程)组成,所以这个库命名为spuad。

用法

const squad = require('squad').getSquad(4);

squad.stepWorker(()=>{
  var express = require('express')
  var app = express()

  app.get('/', function (req, res) {
    res.send('Hello World')
  })

  app.listen(3000)
})
squad.fork();

主要函数:

squad.get(path,callback) 用于监听squad.send(对应的请求);

squad.get('add',(number1,number2,callback)=>{
    callback(number + number2)
});

squad.send('add',2,2 (val)=>{
  console.log(val);//4
})

CF()能将函数转化于主进程于子进程通信的函数;

const add = CF(add(number1,number2,callback){
  callback(number + number2)
})//等同于squad.get

add(1,2,(val)=>{
  console.log(val);
})////等同于squad.send

CF()可以转包括promise类型的function

squad.worker_number设置子进程数

squad.fork(callback) 启动APP

squad.stepMaster(fn):设置master进程加载的数据,fn可以是Promise

squad.stepMaster(()=>{
  return 'master'
});
squad.fork((values)=>{console.log(values)}) //['master']

squad.stepWorker(fn):设置worker进程加载的数据,fn可以是Promise

squad.stepWorker(()=>{
  ....
})

squad.setRestartTime(date):设置重启的时间。该函数必须是在isMaster下运行的

squad.stepMaster(()=>{
  var retime = new Date();
  retime.setHours(retime.getHours + 1);
  squad.setResartTime(Date.parse(retime)/1000);//设置重启时间一个小时后;
  setInterval(squad.resart.bind(squad), 60000);
});

squad.setBound(cpu, rss):设置重启的条件。该函数必须是在isMaster下运行的

squad.stepMaster(()=>{
  squad.setBound(0.5,25600);//设置cpu使用率为50%,内存为5G为重启条件;
  setInterval(squad.resart.bind(squad), 60000);
});
1.0.2

7 years ago