node-distributed-debounce
Advanced tools
Comparing version
@@ -11,3 +11,3 @@ "use strict"; | ||
// incr counter | ||
const currentCount = await new Promise((resolve, reject) => { | ||
const ownedTicket = await new Promise((resolve, reject) => { | ||
args.redisclient | ||
@@ -27,3 +27,3 @@ .multi() | ||
// check this counting is the latest. | ||
const counter = await new Promise((resolve, reject) => { | ||
const currentTicket = await new Promise((resolve, reject) => { | ||
args.redisclient.get(args.key, (error, result) => { | ||
@@ -33,3 +33,3 @@ if (error) | ||
else if (!result) | ||
return resolve(currentCount); | ||
return resolve(ownedTicket); | ||
// when key expired. | ||
@@ -40,3 +40,3 @@ else | ||
}); | ||
if (currentCount !== counter) | ||
if (ownedTicket !== currentTicket) | ||
return; | ||
@@ -43,0 +43,0 @@ // lock for atomicity |
{ | ||
"name": "node-distributed-debounce", | ||
"version": "1.0.7", | ||
"version": "1.0.8", | ||
"description": "debounce function for distributed system with redis and nodejs.", | ||
@@ -24,3 +24,3 @@ "keywords": ["nodejs", "debounce", "distributed-system", "redis", "distributed"], | ||
"build": "tsc -p ./tsconfig.json", | ||
"prepublish": "npm run build" | ||
"prepublish": "npm run test && npm run build" | ||
}, | ||
@@ -27,0 +27,0 @@ "peerDependencies": { |
@@ -64,5 +64,5 @@ # node-dsitributed-debounce | ||
``` | ||
FUNCTION DISTRIBUTED_DEBOUCE(key, wait, callback) | ||
FUNCTION DISTRIBUTED_DEBOUNCE(key, wait, callback) | ||
currentCounter = MULTI | ||
ticket = MULTI | ||
INCR(key) | ||
@@ -74,4 +74,4 @@ EXPRE(key, wait) | ||
counter = GET(key) | ||
IF currentCounter != counter | ||
currentTicket = GET(key) | ||
IF currentTicket != ticket | ||
EXIT | ||
@@ -78,0 +78,0 @@ END |
5578
0.4%