better-lock 2.0.2-beta → 3.0.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/.idea/prettier.xml +1 -0
- package/README.md +64 -45
- package/dist/better_lock.d.ts +7 -4
- package/dist/better_lock.js +17 -14
- package/dist/better_lock.js.map +1 -1
- package/dist/errors.d.ts +3 -1
- package/dist/errors.js +11 -12
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internals.js +2 -2
- package/dist/internals.js.map +1 -1
- package/dist/options.d.ts +5 -0
- package/dist/types.d.ts +1 -1
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +92 -0
- package/docs/assets/main.js +54 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1300 -0
- package/docs/assets/widgets.png +0 -0
- package/docs/assets/widgets@2x.png +0 -0
- package/docs/classes/BetterLockError.html +109 -0
- package/docs/classes/BetterLockExecutionTimeoutError.html +122 -0
- package/docs/classes/BetterLockInternalError.html +101 -0
- package/docs/classes/BetterLockInvalidArgumentError.html +112 -0
- package/docs/classes/BetterLockJobAbortedError.html +115 -0
- package/docs/classes/BetterLockQueueOverflowError.html +142 -0
- package/docs/classes/BetterLockWaitTimeoutError.html +122 -0
- package/docs/classes/_internal_.BetterLock.html +324 -0
- package/docs/classes/_internal_.KeyQueue.html +127 -0
- package/docs/classes/_internal_.LockJob.html +226 -0
- package/docs/index.html +281 -0
- package/docs/interfaces/BetterLockJobOptions.html +89 -0
- package/docs/interfaces/BetterLockOptions.html +153 -0
- package/docs/modules/_internal_.__home_panta_dev_pantas_better_lock_src_errors_.html +80 -0
- package/docs/modules/_internal_.html +68 -0
- package/docs/modules.html +96 -0
- package/docs/types/BetterLockErrorName.html +61 -0
- package/docs/types/BetterLockExecutor.html +63 -0
- package/docs/types/BetterLockKey.html +61 -0
- package/docs/types/BetterLockQueueEjectionStrategy.html +59 -0
- package/docs/types/_internal_.ICallback.html +59 -0
- package/docs/types/_internal_.ICallbackExecutor.html +73 -0
- package/docs/types/_internal_.IErrorExports.html +52 -0
- package/docs/types/_internal_.IPromiseExecutor.html +65 -0
- package/docs/variables/BetterLock.html +59 -0
- package/package.json +8 -5
- package/spec/better_lock.spec.ts +37 -1
- package/src/better_lock.ts +14 -9
- package/src/errors.ts +5 -2
- package/src/index.ts +2 -1
- package/src/options.ts +7 -0
- package/src/types.ts +2 -2
package/.idea/prettier.xml
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<project version="4">
|
|
3
3
|
<component name="PrettierConfiguration">
|
|
4
|
+
<option name="myConfigurationMode" value="AUTOMATIC" />
|
|
4
5
|
<option name="myRunOnSave" value="true" />
|
|
5
6
|
<option name="myRunOnReformat" value="true" />
|
|
6
7
|
<option name="myFilesPattern" value="{**/*,*}" />
|
package/README.md
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
A (better) node.js lock library.
|
|
4
4
|
|
|
5
|
-

|
|
6
|
-
|
|
7
5
|
### Features
|
|
8
6
|
|
|
9
7
|
- Typescript-ready
|
|
@@ -26,7 +24,9 @@ npm install --save better-lock
|
|
|
26
24
|
yarn add better-lock
|
|
27
25
|
```
|
|
28
26
|
|
|
29
|
-
###
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
Full docs: <https://panta82.github.io/better-lock/>
|
|
30
30
|
|
|
31
31
|
##### Minimal example
|
|
32
32
|
|
|
@@ -42,8 +42,7 @@ try {
|
|
|
42
42
|
|
|
43
43
|
// Outside the lock. You will get whatever the promise chain has returned.
|
|
44
44
|
console.log(res); // "my result"
|
|
45
|
-
}
|
|
46
|
-
catch (err) {
|
|
45
|
+
} catch (err) {
|
|
47
46
|
// Either your or BetterLock's error
|
|
48
47
|
}
|
|
49
48
|
```
|
|
@@ -52,11 +51,11 @@ catch (err) {
|
|
|
52
51
|
|
|
53
52
|
```typescript
|
|
54
53
|
const lock = new BetterLock({
|
|
55
|
-
name: 'FileLock',
|
|
56
|
-
log: winstonLogger.debug,
|
|
57
|
-
wait_timeout: 1000 * 30,
|
|
58
|
-
execution_timeout: 1000 * 60 * 5,
|
|
59
|
-
queue_size: 1,
|
|
54
|
+
name: 'FileLock', // To be used in error reporting and logging
|
|
55
|
+
log: winstonLogger.debug, // Give it your logger with appropeiate level
|
|
56
|
+
wait_timeout: 1000 * 30, // Max 30 sec wait in queue
|
|
57
|
+
execution_timeout: 1000 * 60 * 5, // Time out after 5 minutes
|
|
58
|
+
queue_size: 1, // At most one pending job
|
|
60
59
|
});
|
|
61
60
|
|
|
62
61
|
async function processFile(filename) {
|
|
@@ -67,14 +66,13 @@ async function processFile(filename) {
|
|
|
67
66
|
});
|
|
68
67
|
return {
|
|
69
68
|
status: true,
|
|
70
|
-
result
|
|
69
|
+
result,
|
|
71
70
|
};
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
71
|
+
} catch (err) {
|
|
74
72
|
if (err instanceof BetterLock.QueueOverflowError) {
|
|
75
73
|
// The job was discarded
|
|
76
74
|
return {
|
|
77
|
-
status: false
|
|
75
|
+
status: false,
|
|
78
76
|
};
|
|
79
77
|
}
|
|
80
78
|
|
|
@@ -84,7 +82,6 @@ async function processFile(filename) {
|
|
|
84
82
|
throw err;
|
|
85
83
|
}
|
|
86
84
|
}
|
|
87
|
-
|
|
88
85
|
```
|
|
89
86
|
|
|
90
87
|
##### Locking on multiple keys
|
|
@@ -96,21 +93,17 @@ const userLock = new BetterLock({
|
|
|
96
93
|
});
|
|
97
94
|
|
|
98
95
|
function transferBetweenUsers(fromId, toId, amount) {
|
|
99
|
-
userLock
|
|
100
|
-
|
|
101
|
-
User.get(fromId),
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
]);
|
|
96
|
+
userLock
|
|
97
|
+
.acquire([fromId, toId], () => {
|
|
98
|
+
return Promise.all([User.get(fromId), User.get(toId)]).then(([fromUser, toUser]) => {
|
|
99
|
+
fromUser.amount -= amount;
|
|
100
|
+
toUser.amount += amount;
|
|
101
|
+
return Promise.all([user1.save(), user2.save()]);
|
|
102
|
+
});
|
|
103
|
+
})
|
|
104
|
+
.then(() => {
|
|
105
|
+
console.log('Transfer completed');
|
|
110
106
|
});
|
|
111
|
-
}).then(() => {
|
|
112
|
-
console.log('Transfer completed');
|
|
113
|
-
});
|
|
114
107
|
}
|
|
115
108
|
```
|
|
116
109
|
|
|
@@ -121,22 +114,25 @@ const BetterLock = require('better-lock');
|
|
|
121
114
|
|
|
122
115
|
const lock = new BetterLock();
|
|
123
116
|
//...
|
|
124
|
-
lock.acquire(
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
//
|
|
134
|
-
|
|
117
|
+
lock.acquire(
|
|
118
|
+
done => {
|
|
119
|
+
// Inside the lock
|
|
120
|
+
doMyAsyncStuffHere(err => {
|
|
121
|
+
// Call done when done
|
|
122
|
+
done(err);
|
|
123
|
+
});
|
|
124
|
+
},
|
|
125
|
+
(err, result) => {
|
|
126
|
+
// Outside the lock
|
|
127
|
+
if (err) {
|
|
128
|
+
// Either your or BetterLock's error
|
|
129
|
+
console.error(err);
|
|
130
|
+
}
|
|
135
131
|
}
|
|
136
|
-
|
|
132
|
+
);
|
|
137
133
|
```
|
|
138
134
|
|
|
139
|
-
You can see a bunch more usage examples in the spec file, [here](spec/better_lock.spec.
|
|
135
|
+
You can see a bunch more usage examples in the spec file, [here](spec/better_lock.spec.ts);
|
|
140
136
|
|
|
141
137
|
### API
|
|
142
138
|
|
|
@@ -164,7 +160,7 @@ You can see a bunch more usage examples in the spec file, [here](spec/better_loc
|
|
|
164
160
|
|
|
165
161
|
### Options
|
|
166
162
|
|
|
167
|
-
All available options can be seen [here](
|
|
163
|
+
All available options can be seen [here](https://panta82.github.io/better-lock/interfaces/BetterLockOptions).
|
|
168
164
|
|
|
169
165
|
`BetterLockOptions` are provided when you construct a lock instance. A subset of options given in `LockJobOptions` can be provided when you call `lock.acquire`, as the last argument.
|
|
170
166
|
|
|
@@ -172,7 +168,7 @@ Example:
|
|
|
172
168
|
|
|
173
169
|
```javascript
|
|
174
170
|
lock.acquire(executor, callback, {
|
|
175
|
-
wait_timeout: 1000
|
|
171
|
+
wait_timeout: 1000,
|
|
176
172
|
});
|
|
177
173
|
```
|
|
178
174
|
|
|
@@ -188,7 +184,10 @@ Most commonly used options are:
|
|
|
188
184
|
- `queue_size`
|
|
189
185
|
Max queue size for waiting jobs.
|
|
190
186
|
|
|
191
|
-
|
|
187
|
+
- `queue_ejection_strategy`
|
|
188
|
+
Which job to eject from the queue when it's full. Default is `newest`.
|
|
189
|
+
|
|
190
|
+
Default options are a static member `DEFAULT_OPTIONS` on the `BetterLock` class. During runtime, you can change the defaults like this:
|
|
192
191
|
|
|
193
192
|
```javascript
|
|
194
193
|
import BetterLock from 'better-lock';
|
|
@@ -215,6 +214,26 @@ The library is not a good fit if:
|
|
|
215
214
|
|
|
216
215
|
### Change log
|
|
217
216
|
|
|
217
|
+
#### **3.0.0** (_2024/04/18_)
|
|
218
|
+
|
|
219
|
+
Add option `queue_ejection_strategy`.
|
|
220
|
+
|
|
221
|
+
Major version bump because the default strategy changed from "newest" (the old assumed value) to "newest" (makes more sense).
|
|
222
|
+
|
|
223
|
+
To migrate, specify:
|
|
224
|
+
|
|
225
|
+
```javascript
|
|
226
|
+
{
|
|
227
|
+
"queue_ejection_strategy": "newest"
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
in your job options.
|
|
232
|
+
|
|
233
|
+
#### **2.0.3** (_2022/05/28_)
|
|
234
|
+
|
|
235
|
+
Introduce generated API docs. Remove beta tag from npm version.
|
|
236
|
+
|
|
218
237
|
#### **2.0.0** (_2021/05/30_)
|
|
219
238
|
|
|
220
239
|
Major update. The entire library was rewritten in typescript, so you should now get typings in most editors. We also had to switch tests from mocha + chai to jest (easier ts integration).
|
package/dist/better_lock.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { ILockJobOptions, IOptions } from './options';
|
|
2
2
|
import { ICallback, ICallbackExecutor, ILockKey, IPromiseExecutor } from './types';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Main better lock class.
|
|
5
5
|
*/
|
|
6
6
|
export declare class BetterLock {
|
|
7
7
|
/**
|
|
8
8
|
* Default options to be used when creating BetterLock instances.
|
|
9
9
|
*/
|
|
10
10
|
static DEFAULT_OPTIONS: IOptions;
|
|
11
|
-
private options;
|
|
12
|
-
private log;
|
|
13
|
-
private queues;
|
|
11
|
+
private readonly options;
|
|
12
|
+
private readonly log;
|
|
13
|
+
private readonly queues;
|
|
14
|
+
/**
|
|
15
|
+
* Create a better lock instance
|
|
16
|
+
*/
|
|
14
17
|
constructor(options?: IOptions);
|
|
15
18
|
/**
|
|
16
19
|
* Return or create a key queue for given key
|
package/dist/better_lock.js
CHANGED
|
@@ -5,9 +5,12 @@ var errors_1 = require("./errors");
|
|
|
5
5
|
var internals_1 = require("./internals");
|
|
6
6
|
var tools = require("./tools");
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Main better lock class.
|
|
9
9
|
*/
|
|
10
10
|
var BetterLock = /** @class */ (function () {
|
|
11
|
+
/**
|
|
12
|
+
* Create a better lock instance
|
|
13
|
+
*/
|
|
11
14
|
function BetterLock(options) {
|
|
12
15
|
this.options = tools.assign({}, [BetterLock.DEFAULT_OPTIONS, options]);
|
|
13
16
|
this.log = tools.makeLog(this.options.name, this.options.log);
|
|
@@ -128,7 +131,7 @@ var BetterLock = /** @class */ (function () {
|
|
|
128
131
|
job.wait_timeout_id = setTimeout(function () { return _this.onWaitTimeout(job); }, job.options.wait_timeout);
|
|
129
132
|
// NOTE: timeout of 0 will NOT trigger error if lock can be acquired immediately.
|
|
130
133
|
}
|
|
131
|
-
this.log("Enqueued "
|
|
134
|
+
this.log("Enqueued ".concat(job));
|
|
132
135
|
// Perform update of queues this job has modified. We don't do this in next tick or something,
|
|
133
136
|
// because we want canAcquire to immediately return false
|
|
134
137
|
if (queuesToUpdate.length) {
|
|
@@ -158,18 +161,18 @@ var BetterLock = /** @class */ (function () {
|
|
|
158
161
|
}
|
|
159
162
|
// Handle wait queue overflow
|
|
160
163
|
if (tools.isNumber(this.options.queue_size) && this.options.queue_size < queue.jobs.length) {
|
|
161
|
-
|
|
162
|
-
var
|
|
163
|
-
this.log(queue.toString()
|
|
164
|
-
this.endJob(
|
|
165
|
-
new errors_1.BetterLockQueueOverflowError(this.options.name, queue.key, queue.jobs.length,
|
|
164
|
+
var strategy = this.options.queue_ejection_strategy || 'oldest';
|
|
165
|
+
var targetJob = queue.jobs[strategy === 'oldest' ? 0 : queue.jobs.length - 1];
|
|
166
|
+
this.log("".concat(queue.toString(), " has overflown, so the ").concat(strategy, " job (").concat(targetJob, ") was kicked out"));
|
|
167
|
+
this.endJob(targetJob, [
|
|
168
|
+
new errors_1.BetterLockQueueOverflowError(this.options.name, queue.key, queue.jobs.length, targetJob, strategy),
|
|
166
169
|
]);
|
|
167
170
|
}
|
|
168
171
|
}
|
|
169
172
|
};
|
|
170
173
|
BetterLock.prototype.executeJob = function (job) {
|
|
171
174
|
var _this = this;
|
|
172
|
-
this.log("Executing "
|
|
175
|
+
this.log("Executing ".concat(job));
|
|
173
176
|
// Clear wait timeout
|
|
174
177
|
clearTimeout(job.wait_timeout_id);
|
|
175
178
|
job.wait_timeout_id = null;
|
|
@@ -186,7 +189,7 @@ var BetterLock = /** @class */ (function () {
|
|
|
186
189
|
if (queue.active !== job) {
|
|
187
190
|
// This should never happen
|
|
188
191
|
return _this.endJob(job, [
|
|
189
|
-
new errors_1.BetterLockInternalError(_this.options.name, "Corrupted wait queue state for "
|
|
192
|
+
new errors_1.BetterLockInternalError(_this.options.name, "Corrupted wait queue state for ".concat(queue.key)),
|
|
190
193
|
]);
|
|
191
194
|
}
|
|
192
195
|
}
|
|
@@ -200,7 +203,7 @@ var BetterLock = /** @class */ (function () {
|
|
|
200
203
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
201
204
|
args[_i] = arguments[_i];
|
|
202
205
|
}
|
|
203
|
-
_this.log("Done called for "
|
|
206
|
+
_this.log("Done called for ".concat(job));
|
|
204
207
|
_this.endJob(job, args);
|
|
205
208
|
};
|
|
206
209
|
if (job.executor.length > 0) {
|
|
@@ -228,17 +231,17 @@ var BetterLock = /** @class */ (function () {
|
|
|
228
231
|
});
|
|
229
232
|
};
|
|
230
233
|
BetterLock.prototype.onWaitTimeout = function (job) {
|
|
231
|
-
this.log(job
|
|
234
|
+
this.log("".concat(job, " has timed out after waiting in queue for ").concat(new Date().valueOf() - job.enqueued_at.valueOf(), "ms"));
|
|
232
235
|
this.endJob(job, [new errors_1.BetterLockWaitTimeoutError(this.options.name, job)]);
|
|
233
236
|
};
|
|
234
237
|
BetterLock.prototype.onExecutionTimeout = function (job) {
|
|
235
|
-
this.log(job
|
|
238
|
+
this.log("".concat(job, " has timed out after executing for ").concat(new Date().valueOf() - job.executed_at.valueOf(), "ms"));
|
|
236
239
|
this.endJob(job, [new errors_1.BetterLockExecutionTimeoutError(this.options.name, job)]);
|
|
237
240
|
};
|
|
238
241
|
BetterLock.prototype.endJob = function (job, callbackArgs) {
|
|
239
242
|
var _this = this;
|
|
240
243
|
if (job.ended_at) {
|
|
241
|
-
this.log("WARNING: "
|
|
244
|
+
this.log("WARNING: ".concat(job, " is trying to end, but it has already ended at ").concat(job.ended_at.toISOString(), ". Called with arguments: ").concat(callbackArgs));
|
|
242
245
|
return;
|
|
243
246
|
}
|
|
244
247
|
clearTimeout(job.wait_timeout_id);
|
|
@@ -263,7 +266,7 @@ var BetterLock = /** @class */ (function () {
|
|
|
263
266
|
}
|
|
264
267
|
else {
|
|
265
268
|
// Something is wrong. Where did this job come from?
|
|
266
|
-
this.log("WARNING: "
|
|
269
|
+
this.log("WARNING: ".concat(job, " is ending, but it is not found anywhere in the queue for ").concat(queue.key));
|
|
267
270
|
}
|
|
268
271
|
}
|
|
269
272
|
}
|
package/dist/better_lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better_lock.js","sourceRoot":"","sources":["../src/better_lock.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"better_lock.js","sourceRoot":"","sources":["../src/better_lock.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LockJob } from './internals';
|
|
2
2
|
import { IErrorName } from './types';
|
|
3
|
+
import { IQueueEjectionStrategy } from './options';
|
|
3
4
|
export declare class BetterLockError extends Error {
|
|
4
5
|
/**
|
|
5
6
|
* Name of the lock that caused the error
|
|
@@ -35,7 +36,8 @@ export declare class BetterLockQueueOverflowError extends BetterLockError {
|
|
|
35
36
|
keys: string[];
|
|
36
37
|
job_count: number;
|
|
37
38
|
kicked_out_job_id: number;
|
|
38
|
-
|
|
39
|
+
strategy: IQueueEjectionStrategy;
|
|
40
|
+
constructor(lockName: any, key: any, count: any, job: LockJob<any>, strategy: IQueueEjectionStrategy);
|
|
39
41
|
}
|
|
40
42
|
export declare class BetterLockJobAbortedError extends BetterLockError {
|
|
41
43
|
job_id: number;
|
package/dist/errors.js
CHANGED
|
@@ -20,15 +20,15 @@ var internals_1 = require("./internals");
|
|
|
20
20
|
var BetterLockError = /** @class */ (function (_super) {
|
|
21
21
|
__extends(BetterLockError, _super);
|
|
22
22
|
function BetterLockError(lockName, message, incomingStack) {
|
|
23
|
-
var _newTarget = this.constructor;
|
|
24
23
|
if (incomingStack === void 0) { incomingStack = null; }
|
|
24
|
+
var _newTarget = this.constructor;
|
|
25
25
|
var _this = this;
|
|
26
26
|
// Fix typescript custom Error prototype chain
|
|
27
27
|
// https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
|
|
28
28
|
// https://github.com/reduardo7/ts-base-error/blob/master/src/index.ts
|
|
29
29
|
var trueProto = _newTarget.prototype;
|
|
30
30
|
if (lockName) {
|
|
31
|
-
_this = _super.call(this, "["
|
|
31
|
+
_this = _super.call(this, "[".concat(lockName, "] ").concat(message)) || this;
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
34
|
_this = _super.call(this, message) || this;
|
|
@@ -51,13 +51,11 @@ exports.BetterLockError = BetterLockError;
|
|
|
51
51
|
var BetterLockInternalError = /** @class */ (function (_super) {
|
|
52
52
|
__extends(BetterLockInternalError, _super);
|
|
53
53
|
function BetterLockInternalError(lockName, message) {
|
|
54
|
-
var _this = this;
|
|
55
54
|
var lastChar = message[message.length - 1];
|
|
56
55
|
if (lastChar !== '.' && lastChar !== '!' && lastChar !== '?') {
|
|
57
56
|
message += '.';
|
|
58
57
|
}
|
|
59
|
-
|
|
60
|
-
return _this;
|
|
58
|
+
return _super.call(this, lockName, message + ' This is probably a bug inside "better-lock" library') || this;
|
|
61
59
|
}
|
|
62
60
|
return BetterLockInternalError;
|
|
63
61
|
}(BetterLockError));
|
|
@@ -65,7 +63,7 @@ exports.BetterLockInternalError = BetterLockInternalError;
|
|
|
65
63
|
var BetterLockInvalidArgumentError = /** @class */ (function (_super) {
|
|
66
64
|
__extends(BetterLockInvalidArgumentError, _super);
|
|
67
65
|
function BetterLockInvalidArgumentError(lockName, argument, expected, actual) {
|
|
68
|
-
var _this = _super.call(this, lockName, "Argument \""
|
|
66
|
+
var _this = _super.call(this, lockName, "Argument \"".concat(argument, "\" must be ").concat(expected, " (got: \"").concat(actual, "\")")) || this;
|
|
69
67
|
_this.argument = argument;
|
|
70
68
|
_this.argument = argument;
|
|
71
69
|
return _this;
|
|
@@ -77,7 +75,7 @@ var BetterLockWaitTimeoutError = /** @class */ (function (_super) {
|
|
|
77
75
|
__extends(BetterLockWaitTimeoutError, _super);
|
|
78
76
|
function BetterLockWaitTimeoutError(lockName, job) {
|
|
79
77
|
var _this = this;
|
|
80
|
-
var message = job
|
|
78
|
+
var message = "".concat(job, " has timed out after ").concat(new Date().valueOf() - job.enqueued_at.valueOf(), "ms in wait queue");
|
|
81
79
|
_this = _super.call(this, lockName, message, job.incoming_stack) || this;
|
|
82
80
|
_this.job_id = job.id;
|
|
83
81
|
_this.keys = job.keys;
|
|
@@ -91,7 +89,7 @@ var BetterLockExecutionTimeoutError = /** @class */ (function (_super) {
|
|
|
91
89
|
__extends(BetterLockExecutionTimeoutError, _super);
|
|
92
90
|
function BetterLockExecutionTimeoutError(lockName, job) {
|
|
93
91
|
var _this = this;
|
|
94
|
-
var message = job
|
|
92
|
+
var message = "".concat(job, " has timed out after ").concat(new Date().valueOf() - job.executed_at.valueOf(), "ms of execution");
|
|
95
93
|
_this = _super.call(this, lockName, message, job.incoming_stack) || this;
|
|
96
94
|
_this.job_id = job.id;
|
|
97
95
|
_this.keys = job.keys;
|
|
@@ -103,15 +101,16 @@ var BetterLockExecutionTimeoutError = /** @class */ (function (_super) {
|
|
|
103
101
|
exports.BetterLockExecutionTimeoutError = BetterLockExecutionTimeoutError;
|
|
104
102
|
var BetterLockQueueOverflowError = /** @class */ (function (_super) {
|
|
105
103
|
__extends(BetterLockQueueOverflowError, _super);
|
|
106
|
-
function BetterLockQueueOverflowError(lockName, key, count, job) {
|
|
104
|
+
function BetterLockQueueOverflowError(lockName, key, count, job, strategy) {
|
|
107
105
|
var _this = this;
|
|
108
|
-
var keyDesignation = key === internals_1.KeyQueue.DEFAULT_QUEUE_KEY ? '' : " for key \""
|
|
109
|
-
var message = "Too many jobs ("
|
|
106
|
+
var keyDesignation = key === internals_1.KeyQueue.DEFAULT_QUEUE_KEY ? '' : " for key \"".concat(key, "\"");
|
|
107
|
+
var message = "Too many jobs (".concat(count, ") are waiting").concat(keyDesignation, ". The ").concat(strategy, " job (").concat(job, ") was kicked out");
|
|
110
108
|
_this = _super.call(this, lockName, message, job.incoming_stack) || this;
|
|
111
109
|
_this.job_id = job.id;
|
|
112
110
|
_this.keys = job.keys;
|
|
113
111
|
_this.job_count = count;
|
|
114
112
|
_this.kicked_out_job_id = job.id;
|
|
113
|
+
_this.strategy = strategy;
|
|
115
114
|
return _this;
|
|
116
115
|
}
|
|
117
116
|
return BetterLockQueueOverflowError;
|
|
@@ -120,7 +119,7 @@ exports.BetterLockQueueOverflowError = BetterLockQueueOverflowError;
|
|
|
120
119
|
var BetterLockJobAbortedError = /** @class */ (function (_super) {
|
|
121
120
|
__extends(BetterLockJobAbortedError, _super);
|
|
122
121
|
function BetterLockJobAbortedError(lockName, job) {
|
|
123
|
-
var _this = _super.call(this, lockName, job
|
|
122
|
+
var _this = _super.call(this, lockName, "".concat(job, " has been aborted by the user"), job.incoming_stack) || this;
|
|
124
123
|
_this.job_id = job.id;
|
|
125
124
|
_this.keys = job.keys;
|
|
126
125
|
return _this;
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yCAAgD;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BetterLock as BetterLockUnadorned } from './better_lock';
|
|
2
2
|
import { BetterLockError, BetterLockExecutionTimeoutError, BetterLockInternalError, BetterLockInvalidArgumentError, BetterLockJobAbortedError, BetterLockQueueOverflowError, BetterLockWaitTimeoutError } from './errors';
|
|
3
|
-
import { ILockJobOptions as BetterLockJobOptions, IOptions as BetterLockOptions } from './options';
|
|
3
|
+
import { ILockJobOptions as BetterLockJobOptions, IOptions as BetterLockOptions, IQueueEjectionStrategy as BetterLockQueueEjectionStrategy } from './options';
|
|
4
4
|
import { IErrorName as BetterLockErrorName, IExecutor as BetterLockExecutor, ILockKey as BetterLockKey } from './types';
|
|
5
|
-
export { BetterLockOptions, BetterLockJobOptions, BetterLockExecutor, BetterLockKey, BetterLockErrorName, BetterLockError, BetterLockExecutionTimeoutError, BetterLockInternalError, BetterLockInvalidArgumentError, BetterLockJobAbortedError, BetterLockQueueOverflowError, BetterLockWaitTimeoutError, };
|
|
5
|
+
export { BetterLockOptions, BetterLockQueueEjectionStrategy, BetterLockJobOptions, BetterLockExecutor, BetterLockKey, BetterLockErrorName, BetterLockError, BetterLockExecutionTimeoutError, BetterLockInternalError, BetterLockInvalidArgumentError, BetterLockJobAbortedError, BetterLockQueueOverflowError, BetterLockWaitTimeoutError, };
|
|
6
6
|
export declare const BetterLock: typeof BetterLockUnadorned & {
|
|
7
7
|
BetterLock: typeof BetterLockUnadorned;
|
|
8
8
|
Error: typeof BetterLockError;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAkE;AAClE,mCAQkB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAkE;AAClE,mCAQkB;AAgBhB,gGAvBA,wBAAe,OAuBA;AACf,gHAvBA,wCAA+B,OAuBA;AAC/B,wGAvBA,gCAAuB,OAuBA;AACvB,+GAvBA,uCAA8B,OAuBA;AAC9B,0GAvBA,kCAAyB,OAuBA;AACzB,6GAvBA,qCAA4B,OAuBA;AAC5B,2GAvBA,mCAA0B,OAuBA;AAG5B,SAAS,aAAa,CACpB,MAAe,EACf,OAAiB;IAEjB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,MAAa,CAAC;AACvB,CAAC;AAEY,QAAA,UAAU,GAAG,aAAa,CAAC,wBAAmB,EAAE;IAC3D,UAAU,EAAE,wBAAmB;IAE/B,KAAK,EAAE,wBAAe;IACtB,aAAa,EAAE,gCAAuB;IACtC,oBAAoB,EAAE,uCAA8B;IACpD,gBAAgB,EAAE,mCAA0B;IAC5C,qBAAqB,EAAE,wCAA+B;IACtD,kBAAkB,EAAE,qCAA4B;IAChD,eAAe,EAAE,kCAAyB;CAC3C,CAAC,CAAC;AAEH,kBAAe,kBAAU,CAAC"}
|
package/dist/internals.js
CHANGED
|
@@ -41,7 +41,7 @@ var LockJob = /** @class */ (function () {
|
|
|
41
41
|
this.options = options;
|
|
42
42
|
}
|
|
43
43
|
LockJob.prototype.toString = function () {
|
|
44
|
-
return "Job #"
|
|
44
|
+
return "Job #".concat(this.id, " [").concat(this.keys.join(', '), "]");
|
|
45
45
|
};
|
|
46
46
|
LockJob._lastId = 0;
|
|
47
47
|
return LockJob;
|
|
@@ -65,7 +65,7 @@ var KeyQueue = /** @class */ (function () {
|
|
|
65
65
|
this.key = key;
|
|
66
66
|
}
|
|
67
67
|
KeyQueue.prototype.toString = function () {
|
|
68
|
-
return this.key === KeyQueue.DEFAULT_QUEUE_KEY ? 'JobQueue' : "JobQueue<"
|
|
68
|
+
return this.key === KeyQueue.DEFAULT_QUEUE_KEY ? 'JobQueue' : "JobQueue<".concat(this.key, ">");
|
|
69
69
|
};
|
|
70
70
|
// We will use this key when user doesn't supply anything
|
|
71
71
|
KeyQueue.DEFAULT_QUEUE_KEY = '___DEFAULT_QUEUE_KEY___';
|
package/dist/internals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH;IA8DE,iBACE,IAA0B,EAC1B,QAA4B,EAC5B,QAA4B,EAC5B,OAAwB;QA/D1B,kDAAkD;QAC3C,OAAE,GAAG,SAAS,CAAC;QAuBtB;;WAEG;QACI,gBAAW,GAAS,IAAI,IAAI,EAAE,CAAC;QAEtC;;WAEG;QACI,gBAAW,GAAS,IAAI,CAAC;QAEhC;;WAEG;QACI,aAAQ,GAAS,IAAI,CAAC;QAO7B;;WAEG;QACI,oBAAe,GAAG,IAAI,CAAC;QAE9B;;WAEG;QACI,yBAAoB,GAAG,IAAI,CAAC;QAEnC;;WAEG;QACI,mBAAc,GAAW,IAAI,CAAC;QAQnC,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,0BAAQ,GAAR;QACE,OAAO,
|
|
1
|
+
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH;IA8DE,iBACE,IAA0B,EAC1B,QAA4B,EAC5B,QAA4B,EAC5B,OAAwB;QA/D1B,kDAAkD;QAC3C,OAAE,GAAG,SAAS,CAAC;QAuBtB;;WAEG;QACI,gBAAW,GAAS,IAAI,IAAI,EAAE,CAAC;QAEtC;;WAEG;QACI,gBAAW,GAAS,IAAI,CAAC;QAEhC;;WAEG;QACI,aAAQ,GAAS,IAAI,CAAC;QAO7B;;WAEG;QACI,oBAAe,GAAG,IAAI,CAAC;QAE9B;;WAEG;QACI,yBAAoB,GAAG,IAAI,CAAC;QAEnC;;WAEG;QACI,mBAAc,GAAW,IAAI,CAAC;QAQnC,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,0BAAQ,GAAR;QACE,OAAO,eAAQ,IAAI,CAAC,EAAE,eAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG,CAAC;IACrD,CAAC;IA9EM,eAAO,GAAG,CAAC,CAAC;IA+ErB,cAAC;CAAA,AAhFD,IAgFC;AAhFY,0BAAO;AAkFpB,wHAAwH;AAExH;;GAEG;AACH;IAiBE,kBAAY,GAAY;QAXxB;;;WAGG;QACI,SAAI,GAAmB,EAAE,CAAC;QAEjC;;WAEG;QACI,WAAM,GAAiB,IAAI,CAAC;QAGjC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,2BAAQ,GAAR;QACE,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAY,IAAI,CAAC,GAAG,MAAG,CAAC;IACxF,CAAC;IAtBD,yDAAyD;IACzC,0BAAiB,GAAG,yBAAyB,CAAC;IAsBhE,eAAC;CAAA,AAxBD,IAwBC;AAxBY,4BAAQ"}
|
package/dist/options.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface ILockJobOptions {
|
|
|
15
15
|
*/
|
|
16
16
|
extend_stack_traces?: boolean;
|
|
17
17
|
}
|
|
18
|
+
export declare type IQueueEjectionStrategy = 'oldest' | 'newest';
|
|
18
19
|
/**
|
|
19
20
|
* Options that apply on BetterLock instance
|
|
20
21
|
*/
|
|
@@ -32,6 +33,10 @@ export interface IOptions extends ILockJobOptions {
|
|
|
32
33
|
* Max queue size for waiting jobs.
|
|
33
34
|
*/
|
|
34
35
|
queue_size?: number | null;
|
|
36
|
+
/**
|
|
37
|
+
* If queue is full, which job to eject. Defaults to 'oldest'.
|
|
38
|
+
*/
|
|
39
|
+
queue_ejection_strategy?: IQueueEjectionStrategy;
|
|
35
40
|
/**
|
|
36
41
|
* Lock name. This will be written in all logs and error messages, to help you distinguish between different locks
|
|
37
42
|
*/
|
package/dist/types.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare type IErrorName = keyof IErrorExports;
|
|
|
8
8
|
* User-supplied callback. We support a "canonical" callback, with just error and result,
|
|
9
9
|
* but also old-school callbacks, with varargs return values.
|
|
10
10
|
*/
|
|
11
|
-
export declare type ICallback<TResult> = TResult extends any[] ? (err
|
|
11
|
+
export declare type ICallback<TResult> = TResult extends any[] ? (err: Error | null, ...result: TResult) => void : (err: Error | null, result?: TResult) => void;
|
|
12
12
|
/**
|
|
13
13
|
* Function that user will supply as the thing that will be running inside lock.
|
|
14
14
|
* It can either accept a done() function, or return a promise.
|
package/docs/.nojekyll
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
|