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);
    });
     

    Keywords

    none

    Install

    npm i squal

    DownloadsWeekly Downloads

    2

    Version

    1.0.0

    License

    ISC

    Last publish

    Collaborators

    • lanchong