@webhandle/lock-service-in-memory
v1.0.0
Published
exclusive locks in a single thread
Downloads
104
Readme
@webhandle/lock-service-in-memory
Simple service to acquire and release locks. This stores the locks in memory, so is only good for one a single thread use. However, the pattern is expandable to centralized services.
Install
npm install @webhandle/lock-service-in-memoryInitialize
If running Webhandle, you can run:
import setupLockService from "@webhandle/lock-service-in-memory/initialize-webhandle-component.mjs"
let managerLockService = await setupLockService(webhandle)This will set up
webhandle.services.lock
managerLockService.services.lockUsage
import LockService from "@webhandle/lock-service-in-memory"
let lockService = new LockService()or
let lockService = webhandle.services.lockthen
let lock = await lockService.acquire('test123')
// Do some stuff
lock.release()or
lockService.acquire('test123', (err, lock) => {
// Do some stuff
lock.release()
})The callback is a little faster, if more cumbersome, because in the case that nobody is already holding the lock, the caller doesn't have to wait until the next tick to do something with the lock.
