prolock
v1.3.0
Published
Simple execution lock based on Promises.
Downloads
2
Maintainers
Readme
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
| Param | Type | Description |
|---|----|---|
| callback | function
| Async Function for locked execution |
| options | object
| Options |
| options.timeout_lock | number
| Timeout in ms for getting lock |
| options.release_lock | number
| Timeout in ms for release of own execution to release lock |
| options.no_fail_on_timeout | boolean
| Continue execution after failed getting lock |
Detailed command reference: API
Exceptions
| Message | Code | Description |
|---|----|---|
| Promise Lock: Could not get lock (Timeout) | ETIMEOUTLOCK
| Timed out on getting Lock. See param timeout_lock |
| Promise Lock: Timeout released lock | ETIMEOUTRELEASE
| Timed out on execution. See param release_lock |
| Promise Lock: Argument options invalid | EINVALIDOPTIONS
| Given argument options is invalid |
| Promise Lock: Already unlocked by Timeout | ETIMEOUTUNLOCK
| Unlock 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.