1.0.9 • Published 3 years ago

spr-nodejs v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

spr-node

Make sure specific job can only be run over 1 process among different machines and different process. If some process is killed or stucked, the job will be switched to other process on some machine.

usage

npm install spr-node
import spr from "spr-node"

async function main(){
    //connect to redis first
    //If connect to redis failed, all the job will not be the master
    //InitRedis(host: string, port: number, username: string , password: string , db: number) 
    await spr.InitRedis("127.0.0.1",6379,undefined,"123456",5)

    //add job with unique job name which used in redis
    //the process with same job name will scramble for the master token
    await spr.AddJobName("testjob")
    await spr.AddJobName("testjob2")

    // use function sprJobMgr.IsMaster("jobName") to check whether the process get the master token or not
    // if return true means get the master token
    setInterval(()=>{
        console.log(new Date().toLocaleString(),"testjob is master:",spr.IsMaster("testjob"))
        console.log(new Date().toLocaleString(),"testjob2 is master:",spr.IsMaster("testjob2"))
    },1000)

    // use function sprJobMgr.RemoveJobName("jobName") to remove the job
    // removed job always return false when use sprJobMgr.IsMaster("jobName")
    setTimeout(() => {
        spr.RemoveJobName("testjob2")
    }, 30*1000);
}

main()
1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago