lease

1.0.0 • Public • Published

Lease Build Status NPM version

A memory (RAM) time-released lock for asynchronous resources.

Usage

The following will drop all requests that come in while the lock has been taken out and not yet released.

var Lease = require('./'),
  lease = Lease(2000);
 
function get(cb) {
  function criticalSection(err, release) {
    if (err) {
      if ('AlreadyLeasedError' === err.name) return;
      return cb(err);
    }
 
    setTimeout(function () {
      release();
      cb(null, Math.random());
    }, 1000);
  }
 
  lease('key', criticalSection);
}

It is up to the client to choose what to do when another resource acquired the lease.

API

  • Lease(timeInMs)

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i lease

Weekly Downloads

2

Version

1.0.0

License

none

Last publish

Collaborators

  • ddrinf
  • nemtsov