locker

0.1.0 • Public • Published

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.

Installation

Check out locker server page for server installation instructions.

npm install locker

Example

var Locker = require("locker"),
    locker = new Locker(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   callback
locker.locked("five", 2000, 3000, function(error, callback) {
    if (error) {
        // lock failed
        callback(error);
        return;
    }
 
    // do whatever you want with your shared resource
 
    callback(undefined, {well: "done"});
});

API

  • Requiring
var Locker = require("Locker");
  • New connection
var locker = new Locker(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.

Events

  • reset — connection was reset and all locks were gone.
  • error - error occurred on some of connection locks (timeout exceed for waiting or execution time)

Readme

Keywords

none

Package Sidebar

Install

npm i locker

Weekly Downloads

16

Version

0.1.0

License

none

Last publish

Collaborators

  • bobrik