@shrub/queue-local 0.5.69 → 0.5.70
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/dist/module.js +16 -8
- package/package.json +5 -5
package/dist/module.js
CHANGED
|
@@ -43,18 +43,25 @@ class QueueLocalAdapter extends queue_1.QueueAdapter {
|
|
|
43
43
|
index = callbacks.length >= index ? 0 : index;
|
|
44
44
|
return callbacks.length ? callbacks[index++] : undefined;
|
|
45
45
|
};
|
|
46
|
-
const pushJob = (job, onFinished) => asyncQueue.push(async () => {
|
|
46
|
+
const pushJob = (job, onFinished, onFailed) => asyncQueue.push(async () => {
|
|
47
47
|
// TODO: how to handle if there are no handlers for the queue?
|
|
48
48
|
const callback = getCallback();
|
|
49
49
|
if (callback) {
|
|
50
|
-
await callback(job).finally(
|
|
50
|
+
//await callback(job).finally(returnValue => onFinished(returnValue));
|
|
51
|
+
await callback(job)
|
|
52
|
+
.then(returnValue => onFinished(returnValue))
|
|
53
|
+
.catch(reason => onFailed(reason));
|
|
51
54
|
}
|
|
52
55
|
});
|
|
53
56
|
queue = {
|
|
54
57
|
name,
|
|
55
58
|
add: options => {
|
|
59
|
+
let failed;
|
|
56
60
|
let finished;
|
|
57
|
-
const waitUntilFinished = new Promise(resolve =>
|
|
61
|
+
const waitUntilFinished = new Promise((resolve, reject) => {
|
|
62
|
+
failed = reject;
|
|
63
|
+
finished = resolve;
|
|
64
|
+
});
|
|
58
65
|
const job = {
|
|
59
66
|
id: options.id || unique_id_1.default(),
|
|
60
67
|
name: options.name || "",
|
|
@@ -95,8 +102,9 @@ class QueueLocalAdapter extends queue_1.QueueAdapter {
|
|
|
95
102
|
}
|
|
96
103
|
return undefined;
|
|
97
104
|
};
|
|
98
|
-
const
|
|
99
|
-
|
|
105
|
+
const onFailed = (reason) => failed(reason);
|
|
106
|
+
const onFinished = (returnValue) => {
|
|
107
|
+
finished(returnValue);
|
|
100
108
|
if (options.repeat && options.repeat.cron) {
|
|
101
109
|
queue.add({
|
|
102
110
|
name: options.name,
|
|
@@ -109,10 +117,10 @@ class QueueLocalAdapter extends queue_1.QueueAdapter {
|
|
|
109
117
|
};
|
|
110
118
|
const delay = getDelay(options);
|
|
111
119
|
if (delay !== undefined) {
|
|
112
|
-
setTimeout(() => pushJob(job, onFinished), delay);
|
|
120
|
+
setTimeout(() => pushJob(job, onFinished, onFailed), delay);
|
|
113
121
|
}
|
|
114
122
|
else {
|
|
115
|
-
pushJob(job, onFinished);
|
|
123
|
+
pushJob(job, onFinished, onFailed);
|
|
116
124
|
}
|
|
117
125
|
return Promise.resolve(job);
|
|
118
126
|
},
|
|
@@ -191,4 +199,4 @@ class QueueLocalAdapter extends queue_1.QueueAdapter {
|
|
|
191
199
|
}
|
|
192
200
|
}
|
|
193
201
|
exports.QueueLocalAdapter = QueueLocalAdapter;
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzQ0FBNkY7QUFDN0Ysd0NBR3NCO0FBQ3RCLG9EQUFnRDtBQUNoRCx3REFBb0Q7QUFDcEQsaUVBQXdDO0FBQ3hDLDZDQUE4QztBQUlqQyxRQUFBLHdCQUF3QixHQUFHLG1CQUFZLEVBQTRCLENBQUM7QUF1QmpGLE1BQWEsZ0JBQWdCO0lBQTdCO1FBQ3FCLFlBQU8sR0FBRyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLFNBQUksR0FBRyxhQUFhLENBQUM7UUFDckIsaUJBQVksR0FBRyxDQUFDLG1CQUFXLENBQUMsQ0FBQztJQVcxQyxDQUFDO0lBVEcsVUFBVSxDQUFDLElBQXdCO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsZ0NBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNsRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsaUJBQWlCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4RyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQXVCO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDSjtBQWZELDRDQWVDO0FBRUQsTUFBYSxpQkFBa0IsU0FBUSxvQkFBWTtJQUFuRDs7UUFDcUIsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBcUx4RCxDQUFDO0lBbkxhLGdCQUFnQixDQUFDLElBQVk7UUFDbkMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FB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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shrub/queue-local",
|
|
3
3
|
"description": "Provides a job/worker queue that runs locally.",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.70",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"clean": "rimraf ./dist && rimraf tsconfig.tsbuildinfo"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@shrub/core": "0.5.
|
|
28
|
-
"@shrub/logging": "0.5.
|
|
29
|
-
"@shrub/queue": "0.5.
|
|
27
|
+
"@shrub/core": "0.5.70",
|
|
28
|
+
"@shrub/logging": "0.5.70",
|
|
29
|
+
"@shrub/queue": "0.5.70",
|
|
30
30
|
"@sprig/async-queue": "0.2.2",
|
|
31
31
|
"@sprig/event-emitter": "^0.2.2",
|
|
32
32
|
"@sprig/unique-id": "^0.2.2",
|
|
33
33
|
"cron-parser": "^4.3.0"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "995c9292a868038d8af7ecf67b0a928b6967ad0f"
|
|
36
36
|
}
|