squal

1.0.0 • Public • Published

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.525600);//设置cpu使用率为50%,内存为5G为重启条件;
  setInterval(squad.resart.bind(squad), 60000);
});
 

Readme

Keywords

none

Package Sidebar

Install

npm i squal

Weekly Downloads

0

Version

1.0.0

License

ISC

Last publish

Collaborators

  • lanchong