node-locker - full-featured client for locker lock server
Allows to lock common resources across servers with sub-second precision in node.js in async way.
Check out locker server page for server installation instructions.
npm install locker
varLocker=require("locker"),locker=newLocker(4545,"127.0.0.1");locker.on("reset",function(){console.log("Reset happened (is server running?)");});locker.on("error",function(error){console.log("Catched error:",error);});// name wait max callbacklocker.locked("five",2000,3000,function(error,callback){if(error){// lock failedcallback(error);return;}// do whatever you want with your shared resourcecallback(undefined,{well: "done"});});- Requiring
varLocker=require("Locker");- New connection
varlocker=newLocker(port,host);- Locking resource
locker.locked(identifier,lock_wait_time,max_execution_time,callback)callback signature:
function(error,next){}In callback you will be exclusive owner of resource with name identifier if there is no error argument.
After doing exclusive stuff you should release lock by calling next callback.
reset— connection was reset and all locks were gone.error- error occurred on some of connection locks (timeout exceed for waiting or execution time)