murlock 4.4.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -3
- package/dist/als/als-manager.d.ts +4 -17
- package/dist/als/als-manager.js +4 -49
- package/dist/als/als-manager.js.map +1 -1
- package/dist/als/als.module.js +1 -3
- package/dist/als/als.module.js.map +1 -1
- package/dist/als/als.service.d.ts +7 -5
- package/dist/als/als.service.js +4 -10
- package/dist/als/als.service.js.map +1 -1
- package/dist/decorators/murlock.decorator.js +6 -5
- package/dist/decorators/murlock.decorator.js.map +1 -1
- package/dist/exceptions/murlock-redis.exception.d.ts +2 -1
- package/dist/exceptions/murlock-redis.exception.js +2 -1
- package/dist/exceptions/murlock-redis.exception.js.map +1 -1
- package/dist/interfaces/murlock-options.interface.d.ts +6 -0
- package/dist/lua/extend.lua +9 -0
- package/dist/murlock.service.d.ts +9 -0
- package/dist/murlock.service.js +212 -36
- package/dist/murlock.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/murlock.service.js
CHANGED
|
@@ -35,12 +35,15 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
35
35
|
this.options = options;
|
|
36
36
|
this.asyncStorageService = asyncStorageService;
|
|
37
37
|
this.logger = new common_1.Logger(MurLockService_1.name);
|
|
38
|
+
this.scriptShas = {};
|
|
38
39
|
}
|
|
39
40
|
onModuleInit() {
|
|
40
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
this.validateOptions();
|
|
41
43
|
try {
|
|
42
44
|
this.lockScript = yield (0, promises_1.readFile)((0, path_1.join)(__dirname, './lua/lock.lua'), 'utf8');
|
|
43
45
|
this.unlockScript = yield (0, promises_1.readFile)((0, path_1.join)(__dirname, './lua/unlock.lua'), 'utf8');
|
|
46
|
+
this.extendScript = yield (0, promises_1.readFile)((0, path_1.join)(__dirname, './lua/extend.lua'), 'utf8');
|
|
44
47
|
}
|
|
45
48
|
catch (error) {
|
|
46
49
|
throw new exceptions_1.MurLockException(`Failed to load Lua scripts: ${error.message}`);
|
|
@@ -53,6 +56,7 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
53
56
|
this.registerRedisErrorHandlers();
|
|
54
57
|
try {
|
|
55
58
|
yield this.redisClient.connect();
|
|
59
|
+
yield this.loadScripts();
|
|
56
60
|
}
|
|
57
61
|
catch (error) {
|
|
58
62
|
this.log('error', `Failed to connect to Redis: ${error.message}`);
|
|
@@ -70,10 +74,32 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
70
74
|
}
|
|
71
75
|
});
|
|
72
76
|
}
|
|
77
|
+
validateOptions() {
|
|
78
|
+
const { maxAttempts, wait, extendInterval } = this.options;
|
|
79
|
+
if (!Number.isFinite(maxAttempts) || maxAttempts < 1) {
|
|
80
|
+
throw new exceptions_1.MurLockException(`Invalid MurLock option 'maxAttempts': ${maxAttempts} (must be an integer >= 1).`);
|
|
81
|
+
}
|
|
82
|
+
if (!Number.isFinite(wait) || wait < 0) {
|
|
83
|
+
throw new exceptions_1.MurLockException(`Invalid MurLock option 'wait': ${wait} (must be a number >= 0).`);
|
|
84
|
+
}
|
|
85
|
+
if (extendInterval !== undefined &&
|
|
86
|
+
(!Number.isFinite(extendInterval) || extendInterval <= 0)) {
|
|
87
|
+
throw new exceptions_1.MurLockException(`Invalid MurLock option 'extendInterval': ${extendInterval} (must be a number > 0).`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
73
90
|
sleep(ms) {
|
|
74
91
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
75
92
|
}
|
|
93
|
+
withJitter(delay) {
|
|
94
|
+
if (!this.options.jitter) {
|
|
95
|
+
return delay;
|
|
96
|
+
}
|
|
97
|
+
return Math.floor(delay / 2 + Math.random() * (delay / 2));
|
|
98
|
+
}
|
|
76
99
|
log(level, message, context) {
|
|
100
|
+
if (this.options.logLevel === 'none') {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
77
103
|
const levels = [
|
|
78
104
|
'debug',
|
|
79
105
|
'log',
|
|
@@ -84,6 +110,76 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
84
110
|
this.logger[level](message, context);
|
|
85
111
|
}
|
|
86
112
|
}
|
|
113
|
+
loadScripts() {
|
|
114
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
try {
|
|
116
|
+
this.scriptShas.lock = (yield this.redisClient.sendCommand([
|
|
117
|
+
'SCRIPT',
|
|
118
|
+
'LOAD',
|
|
119
|
+
this.lockScript,
|
|
120
|
+
]));
|
|
121
|
+
this.scriptShas.unlock = (yield this.redisClient.sendCommand([
|
|
122
|
+
'SCRIPT',
|
|
123
|
+
'LOAD',
|
|
124
|
+
this.unlockScript,
|
|
125
|
+
]));
|
|
126
|
+
this.scriptShas.extend = (yield this.redisClient.sendCommand([
|
|
127
|
+
'SCRIPT',
|
|
128
|
+
'LOAD',
|
|
129
|
+
this.extendScript,
|
|
130
|
+
]));
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
this.log('warn', `MurLock could not preload Lua scripts (will fall back to EVAL): ${error.message}`);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
evalScript(name, script, keys, args) {
|
|
138
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
const numkeys = keys.length.toString();
|
|
140
|
+
const sha = this.scriptShas[name];
|
|
141
|
+
if (sha) {
|
|
142
|
+
try {
|
|
143
|
+
return yield this.redisClient.sendCommand([
|
|
144
|
+
'EVALSHA',
|
|
145
|
+
sha,
|
|
146
|
+
numkeys,
|
|
147
|
+
...keys,
|
|
148
|
+
...args,
|
|
149
|
+
]);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
if (!/NOSCRIPT/i.test(String(error === null || error === void 0 ? void 0 : error.message))) {
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
const fresh = (yield this.redisClient.sendCommand([
|
|
157
|
+
'SCRIPT',
|
|
158
|
+
'LOAD',
|
|
159
|
+
script,
|
|
160
|
+
]));
|
|
161
|
+
this.scriptShas[name] = fresh;
|
|
162
|
+
return yield this.redisClient.sendCommand([
|
|
163
|
+
'EVALSHA',
|
|
164
|
+
fresh,
|
|
165
|
+
numkeys,
|
|
166
|
+
...keys,
|
|
167
|
+
...args,
|
|
168
|
+
]);
|
|
169
|
+
}
|
|
170
|
+
catch (_a) {
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return yield this.redisClient.sendCommand([
|
|
175
|
+
'EVAL',
|
|
176
|
+
script,
|
|
177
|
+
numkeys,
|
|
178
|
+
...keys,
|
|
179
|
+
...args,
|
|
180
|
+
]);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
87
183
|
lock(lockKey, releaseTime, clientId, wait) {
|
|
88
184
|
return __awaiter(this, void 0, void 0, function* () {
|
|
89
185
|
this.log('debug', `MurLock Client ID is ${clientId}`);
|
|
@@ -95,32 +191,29 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
95
191
|
throw new exceptions_1.MurLockException(`Failed to obtain lock for key ${lockKey} after ${this.options.maxAttempts} attempts.`);
|
|
96
192
|
}
|
|
97
193
|
try {
|
|
98
|
-
const isLockSuccessful = yield this.
|
|
99
|
-
'EVAL',
|
|
100
|
-
this.lockScript,
|
|
101
|
-
'1',
|
|
102
|
-
lockKey,
|
|
103
|
-
clientId,
|
|
104
|
-
releaseTime.toString(),
|
|
105
|
-
]);
|
|
194
|
+
const isLockSuccessful = yield this.evalScript('lock', this.lockScript, [lockKey], [clientId, releaseTime.toString()]);
|
|
106
195
|
if (isLockSuccessful === 1) {
|
|
107
196
|
this.log('log', `Successfully obtained lock for key ${lockKey}`);
|
|
108
197
|
return true;
|
|
109
198
|
}
|
|
110
199
|
else {
|
|
111
|
-
const
|
|
200
|
+
const baseDelay = wait
|
|
112
201
|
? typeof wait === 'function'
|
|
113
202
|
? wait(this.options.maxAttempts - attemptsRemaining + 1)
|
|
114
203
|
: wait
|
|
115
204
|
: this.options.wait *
|
|
116
205
|
(this.options.maxAttempts - attemptsRemaining + 1);
|
|
206
|
+
const delay = this.withJitter(baseDelay);
|
|
117
207
|
this.log('warn', `Failed to obtain lock for key ${lockKey}, retrying in ${delay} ms...`);
|
|
118
208
|
yield this.sleep(delay);
|
|
119
209
|
return attemptLock(attemptsRemaining - 1);
|
|
120
210
|
}
|
|
121
211
|
}
|
|
122
212
|
catch (error) {
|
|
123
|
-
|
|
213
|
+
if (error instanceof exceptions_1.MurLockException) {
|
|
214
|
+
throw error;
|
|
215
|
+
}
|
|
216
|
+
throw new exceptions_1.MurLockRedisException(`Unexpected error when trying to obtain lock for key ${lockKey}: ${error.message}`);
|
|
124
217
|
}
|
|
125
218
|
});
|
|
126
219
|
return attemptLock(this.options.maxAttempts);
|
|
@@ -128,13 +221,7 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
128
221
|
}
|
|
129
222
|
unlock(lockKey, clientId) {
|
|
130
223
|
return __awaiter(this, void 0, void 0, function* () {
|
|
131
|
-
const result = yield this.
|
|
132
|
-
'EVAL',
|
|
133
|
-
this.unlockScript,
|
|
134
|
-
'1',
|
|
135
|
-
lockKey,
|
|
136
|
-
clientId,
|
|
137
|
-
]);
|
|
224
|
+
const result = yield this.evalScript('unlock', this.unlockScript, [lockKey], [clientId]);
|
|
138
225
|
if (result === 0) {
|
|
139
226
|
if (!this.options.ignoreUnlockFail) {
|
|
140
227
|
throw new exceptions_1.MurLockException(`Failed to release lock for key ${lockKey}`);
|
|
@@ -145,6 +232,39 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
145
232
|
}
|
|
146
233
|
});
|
|
147
234
|
}
|
|
235
|
+
extendLock(lockKey, clientId, releaseTime) {
|
|
236
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
237
|
+
const result = yield this.evalScript('extend', this.extendScript, [lockKey], [clientId, releaseTime.toString()]);
|
|
238
|
+
return result === 1;
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
startWatchdog(lockKey, clientId, releaseTime) {
|
|
242
|
+
if (!this.options.autoExtend) {
|
|
243
|
+
return () => { };
|
|
244
|
+
}
|
|
245
|
+
const interval = this.options.extendInterval && this.options.extendInterval > 0
|
|
246
|
+
? this.options.extendInterval
|
|
247
|
+
: Math.max(1, Math.floor(releaseTime / 3));
|
|
248
|
+
const timer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
249
|
+
try {
|
|
250
|
+
const extended = yield this.extendLock(lockKey, clientId, releaseTime);
|
|
251
|
+
if (extended) {
|
|
252
|
+
this.log('debug', `Watchdog extended lock for key ${lockKey}`);
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
this.log('warn', `Watchdog could not extend lock for key ${lockKey} (ownership lost); stopping watchdog.`);
|
|
256
|
+
clearInterval(timer);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
this.log('error', `Watchdog error while extending lock for key ${lockKey}: ${error.message}`);
|
|
261
|
+
}
|
|
262
|
+
}), interval);
|
|
263
|
+
if (typeof timer.unref === 'function') {
|
|
264
|
+
timer.unref();
|
|
265
|
+
}
|
|
266
|
+
return () => clearInterval(timer);
|
|
267
|
+
}
|
|
148
268
|
acquireLock(lockKey, clientId, releaseTime, wait) {
|
|
149
269
|
return __awaiter(this, void 0, void 0, function* () {
|
|
150
270
|
let isLockSuccessful = false;
|
|
@@ -152,6 +272,9 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
152
272
|
isLockSuccessful = yield this.lock(lockKey, releaseTime, clientId, wait);
|
|
153
273
|
}
|
|
154
274
|
catch (error) {
|
|
275
|
+
if (error instanceof exceptions_1.MurLockException) {
|
|
276
|
+
throw error;
|
|
277
|
+
}
|
|
155
278
|
throw new exceptions_1.MurLockException(`Failed to acquire lock for key ${lockKey}: ${error.message}`);
|
|
156
279
|
}
|
|
157
280
|
if (!isLockSuccessful) {
|
|
@@ -165,6 +288,9 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
165
288
|
yield this.unlock(lockKey, clientId);
|
|
166
289
|
}
|
|
167
290
|
catch (error) {
|
|
291
|
+
if (error instanceof exceptions_1.MurLockException) {
|
|
292
|
+
throw error;
|
|
293
|
+
}
|
|
168
294
|
throw new exceptions_1.MurLockException(`Failed to release lock for key ${lockKey}: ${error.message}`);
|
|
169
295
|
}
|
|
170
296
|
});
|
|
@@ -180,24 +306,80 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
180
306
|
wait = waitOrFn;
|
|
181
307
|
operation = fn;
|
|
182
308
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
309
|
+
if (!Number.isFinite(releaseTime) || releaseTime <= 0) {
|
|
310
|
+
throw new exceptions_1.MurLockException(`Invalid releaseTime for key ${lockKey}: ${releaseTime} (must be > 0).`);
|
|
311
|
+
}
|
|
312
|
+
if (!this.options.reentrant) {
|
|
313
|
+
const clientId = (0, utils_1.generateUuid)();
|
|
314
|
+
yield this.acquireLock(lockKey, clientId, releaseTime, wait);
|
|
315
|
+
const stopWatchdog = this.startWatchdog(lockKey, clientId, releaseTime);
|
|
316
|
+
try {
|
|
317
|
+
return yield operation();
|
|
318
|
+
}
|
|
319
|
+
finally {
|
|
320
|
+
stopWatchdog();
|
|
321
|
+
yield this.releaseLock(lockKey, clientId);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
const existing = this.asyncStorageService.getContext();
|
|
325
|
+
if (existing) {
|
|
326
|
+
return this.runReentrant(existing, lockKey, releaseTime, wait, operation);
|
|
327
|
+
}
|
|
328
|
+
const context = {
|
|
329
|
+
clientId: (0, utils_1.generateUuid)(),
|
|
330
|
+
holds: new Map(),
|
|
331
|
+
};
|
|
332
|
+
return this.asyncStorageService.run(context, () => this.runReentrant(context, lockKey, releaseTime, wait, operation));
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
runReentrant(context, lockKey, releaseTime, wait, operation) {
|
|
336
|
+
var _a, _b, _c;
|
|
337
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
338
|
+
const depth = (_a = context.holds.get(lockKey)) !== null && _a !== void 0 ? _a : 0;
|
|
339
|
+
if (depth > 0) {
|
|
340
|
+
context.holds.set(lockKey, depth + 1);
|
|
341
|
+
try {
|
|
342
|
+
return yield operation();
|
|
343
|
+
}
|
|
344
|
+
finally {
|
|
345
|
+
const current = (_b = context.holds.get(lockKey)) !== null && _b !== void 0 ? _b : 1;
|
|
346
|
+
if (current <= 1) {
|
|
347
|
+
context.holds.delete(lockKey);
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
context.holds.set(lockKey, current - 1);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
yield this.acquireLock(lockKey, context.clientId, releaseTime, wait);
|
|
355
|
+
context.holds.set(lockKey, 1);
|
|
356
|
+
const stopWatchdog = this.startWatchdog(lockKey, context.clientId, releaseTime);
|
|
187
357
|
try {
|
|
188
358
|
return yield operation();
|
|
189
359
|
}
|
|
190
360
|
finally {
|
|
191
|
-
|
|
361
|
+
const current = (_c = context.holds.get(lockKey)) !== null && _c !== void 0 ? _c : 1;
|
|
362
|
+
if (current <= 1) {
|
|
363
|
+
context.holds.delete(lockKey);
|
|
364
|
+
stopWatchdog();
|
|
365
|
+
yield this.releaseLock(lockKey, context.clientId);
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
context.holds.set(lockKey, current - 1);
|
|
369
|
+
}
|
|
192
370
|
}
|
|
193
371
|
});
|
|
194
372
|
}
|
|
195
373
|
registerRedisErrorHandlers() {
|
|
196
374
|
this.redisClient.on('error', (err) => {
|
|
197
375
|
this.log('error', `MurLock Redis Client Error: ${err.message}`);
|
|
198
|
-
if (this.options.
|
|
199
|
-
|
|
200
|
-
|
|
376
|
+
if (typeof this.options.onRedisError === 'function') {
|
|
377
|
+
try {
|
|
378
|
+
this.options.onRedisError(err);
|
|
379
|
+
}
|
|
380
|
+
catch (callbackError) {
|
|
381
|
+
this.log('error', `MurLock onRedisError callback threw: ${callbackError.message}`);
|
|
382
|
+
}
|
|
201
383
|
}
|
|
202
384
|
});
|
|
203
385
|
this.redisClient.on('reconnecting', () => {
|
|
@@ -214,26 +396,20 @@ let MurLockService = MurLockService_1 = class MurLockService {
|
|
|
214
396
|
return __awaiter(this, void 0, void 0, function* () {
|
|
215
397
|
while (true) {
|
|
216
398
|
try {
|
|
217
|
-
const isLockSuccessful = yield this.
|
|
218
|
-
'EVAL',
|
|
219
|
-
this.lockScript,
|
|
220
|
-
'1',
|
|
221
|
-
lockKey,
|
|
222
|
-
clientId,
|
|
223
|
-
releaseTime.toString(),
|
|
224
|
-
]);
|
|
399
|
+
const isLockSuccessful = yield this.evalScript('lock', this.lockScript, [lockKey], [clientId, releaseTime.toString()]);
|
|
225
400
|
if (isLockSuccessful === 1) {
|
|
226
401
|
this.log('log', `Successfully obtained lock for key ${lockKey} in blocking mode`);
|
|
227
402
|
return true;
|
|
228
403
|
}
|
|
229
404
|
else {
|
|
230
|
-
|
|
231
|
-
|
|
405
|
+
const delay = this.withJitter(this.options.wait);
|
|
406
|
+
this.log('warn', `Lock busy for key ${lockKey}, waiting ${delay} ms before next attempt (blocking mode)...`);
|
|
407
|
+
yield this.sleep(delay);
|
|
232
408
|
}
|
|
233
409
|
}
|
|
234
410
|
catch (error) {
|
|
235
411
|
this.log('error', `Unexpected error in blocking lock for key ${lockKey}: ${error.message}`);
|
|
236
|
-
yield this.sleep(this.options.wait);
|
|
412
|
+
yield this.sleep(this.withJitter(this.options.wait));
|
|
237
413
|
}
|
|
238
414
|
}
|
|
239
415
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"murlock.service.js","sourceRoot":"","sources":["../lib/murlock.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"murlock.service.js","sourceRoot":"","sources":["../lib/murlock.service.ts"],"names":[],"mappings":"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"}
|