0.10.0 • Published 2 years ago
@da440dil/js-locker v0.10.0
js-locker
Distributed locking using Redis.
Supported Redis clients: node-redis v3 and v4, ioredis v4.
Example usage with node-redis v4:
import { createClient } from 'redis';
import { createLocker } from '@da440dil/js-locker';
async function main() {
const client = createClient();
await client.connect();
// Create new locker.
const locker = createLocker(client);
// Try to apply lock.
const lock = await locker.lock('some-key', 1000);
if (!lock.ok) {
console.log('Failed to apply lock, retry after %dms', lock.ttl);
return client.quit();
}
console.log('Lock applied');
// some code here
// Optionally try to extend lock.
const result = await lock.lock(1000);
if (!result.ok) {
console.log('Failed to extend lock, retry after %dms', result.ttl);
return client.quit();
}
console.log('Lock extended');
// Try to release lock.
const ok = await lock.unlock();
if (!ok) {
console.log('Failed to release lock');
return client.quit();
}
console.log('Lock released');
await client.quit();
}
main().catch((err) => {
console.error(err);
process.exit(1);
});
npm run file examples/example.ts
npm run file benchmarks/benchmark.ts
0.10.0
2 years ago
0.9.2
3 years ago
0.9.0
3 years ago
0.8.0
3 years ago
0.9.1
3 years ago
0.7.0
3 years ago
0.6.2
3 years ago
0.6.1
3 years ago
0.6.0
3 years ago
0.5.0
3 years ago
0.4.0
3 years ago
0.3.0
3 years ago
0.2.0
4 years ago
0.1.0
5 years ago
0.0.13
5 years ago
0.0.12
5 years ago
0.0.11
5 years ago
0.0.10
5 years ago
0.0.9
5 years ago
0.0.8
5 years ago
0.0.7
5 years ago
0.0.5
5 years ago
0.0.4
5 years ago
0.0.3
5 years ago
0.0.2
5 years ago
0.0.1
5 years ago
0.0.0
5 years ago