spr-nodejs
v1.0.9
Published
<!-- * @Author: your name * @Date: 2021-09-04 08:50:04 * @LastEditTime: 2021-09-04 09:24:08 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /SPR-node/README.md --> # spr-node
Downloads
2
Readme
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()