1.3.0 • Published 1 year ago

prolock v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Promise Lock for Node.js

Simple execution lock based on Promises

Install & Usage

npm install prolock

Usage: prolock

The following code allows to lock a execution:

import { PromiseLock } from "prolock";

var prolock = PromiseLock();

// in function
var result = await prolock(async ()=>{
	// execution to lock
	return "result";
});

and/or:

// in function
var unlock = await prolock();
// execution to lock
// ...
unlock();

To create multiple locks just create an other instance of PromiseLock.

Usage: prolock with Timeout:

Use the following code to lock a execution but with Timeout if we do not get a lock.

import { PromiseLock } from "prolock";

var prolock = PromiseLock({ // global options:
	"timeout_lock": 3000,
	"release_lock": 4000
});

// in function
var result = await prolock(async ()=>{
	// execution to lock
	return "result";
}, {
	"timeout_lock": 1000,
	"release_lock": 2000
});

and/or:

// in function
var unlock = await prolock({
	"timeout_lock": 1000,
	"release_lock": 2000
});
// execution to lock
// ...
unlock();

Functions

Usage: prolock(callback: function, options: object) -> Promise

Usage: prolock(options: object) -> unlock function

Usage: PromiseLock(options: object) -> prolock function

Parameter

ParamTypeDescription
callbackfunctionAsync Function for locked execution
optionsobjectOptions
options.timeout_locknumberTimeout in ms for getting lock
options.release_locknumberTimeout in ms for release of own execution to release lock
options.no_fail_on_timeoutbooleanContinue execution after failed getting lock

Detailed command reference: API

Exceptions

MessageCodeDescription
Promise Lock: Could not get lock (Timeout)ETIMEOUTLOCKTimed out on getting Lock. See param timeout_lock
Promise Lock: Timeout released lockETIMEOUTRELEASETimed out on execution. See param release_lock
Promise Lock: Argument options invalidEINVALIDOPTIONSGiven argument options is invalid
Promise Lock: Already unlocked by TimeoutETIMEOUTUNLOCKUnlock function was called, but lock was already timed out

License

This software is released under the MIT license.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

1.3.0

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.2.0

1 year ago

1.1.0

1 year ago