@shrub/queue-bullmq 0.5.52 → 0.5.55
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.d.ts +2 -1
- package/dist/module.js +89 -57
- package/package.json +5 -5
package/dist/module.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { IModule, IModuleConfigurator, IModuleInitializer } from "@shrub/core";
|
|
|
2
2
|
import { LoggingModule } from "@shrub/logging";
|
|
3
3
|
import { QueueModule } from "@shrub/queue";
|
|
4
4
|
import { ConnectionOptions } from "bullmq";
|
|
5
|
+
export { ConnectionOptions };
|
|
5
6
|
export interface IQueueBullMQConfiguration {
|
|
6
7
|
/** Enables the use of the a BullMQ job queue. */
|
|
7
8
|
useQueue(options?: IQueueBullMQOptions): void;
|
|
@@ -19,7 +20,7 @@ export declare const IQueueBullMQConfiguration: import("@shrub/core").IModuleCon
|
|
|
19
20
|
export declare class QueueBullMQModule implements IModule {
|
|
20
21
|
private readonly adapters;
|
|
21
22
|
readonly name = "queue-bullmq";
|
|
22
|
-
readonly dependencies: (typeof
|
|
23
|
+
readonly dependencies: (typeof QueueModule | typeof LoggingModule)[];
|
|
23
24
|
initialize(init: IModuleInitializer): void;
|
|
24
25
|
configure({ config, next }: IModuleConfigurator): Promise<void>;
|
|
25
26
|
}
|
package/dist/module.js
CHANGED
|
@@ -9,6 +9,7 @@ const bullmq_1 = require("bullmq");
|
|
|
9
9
|
function convertJob(job) {
|
|
10
10
|
return {
|
|
11
11
|
id: job.id || "",
|
|
12
|
+
name: job.name,
|
|
12
13
|
data: job.data,
|
|
13
14
|
get progress() {
|
|
14
15
|
return job.progress;
|
|
@@ -48,71 +49,102 @@ class BullMQQueueAdapter extends queue_1.QueueAdapter {
|
|
|
48
49
|
this.initializeSchedulers(queueSchedulers || []);
|
|
49
50
|
}
|
|
50
51
|
getQueueInstance(name) {
|
|
51
|
-
|
|
52
|
-
const jobCompleted = new QueueEventEmitter();
|
|
53
|
-
const jobFailed = new QueueEventEmitter();
|
|
54
|
-
const jobProgress = new QueueEventEmitter();
|
|
55
|
-
let instance;
|
|
56
|
-
return {
|
|
57
|
-
get onJobActive() {
|
|
58
|
-
return jobActive.event;
|
|
59
|
-
},
|
|
60
|
-
get onJobCompleted() {
|
|
61
|
-
return jobCompleted.event;
|
|
62
|
-
},
|
|
63
|
-
get onJobFailed() {
|
|
64
|
-
return jobFailed.event;
|
|
65
|
-
},
|
|
66
|
-
get onJobProgress() {
|
|
67
|
-
return jobProgress.event;
|
|
68
|
-
},
|
|
69
|
-
add: options => {
|
|
70
|
-
const jobOptions = {
|
|
71
|
-
delay: options.delay,
|
|
72
|
-
repeat: options.repeat && {
|
|
73
|
-
cron: options.repeat.cron,
|
|
74
|
-
immediately: options.repeat.immediate
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
instance = instance || new bullmq_1.Queue(name, { connection: this.connection });
|
|
78
|
-
return instance.add(options.name || "", options.data || {}, jobOptions).then(job => convertJob(job));
|
|
79
|
-
},
|
|
80
|
-
process: options => {
|
|
81
|
-
const worker = new bullmq_1.Worker(name, job => options.callback(convertJob(job)), {
|
|
82
|
-
concurrency: options.concurrency,
|
|
83
|
-
connection: this.connection
|
|
84
|
-
});
|
|
85
|
-
// BullMQ recommends attaching to 'error' and since we don't get job info pass the error to the logger
|
|
86
|
-
// https://docs.bullmq.io/guide/workers
|
|
87
|
-
worker.on("error", error => this.logger.logError(error));
|
|
88
|
-
worker.on("active", job => {
|
|
89
|
-
this.logger.logDebug({ name: "BullMQ - job active", queueName: job.queueName, job: job.id });
|
|
90
|
-
jobActive.tryEmit(() => ({ job: convertJob(job) }));
|
|
91
|
-
});
|
|
92
|
-
worker.on("completed", (job, returnValue) => {
|
|
93
|
-
this.logger.logDebug({ name: "BullMQ - job completed", queueName: job.queueName, job: job.id });
|
|
94
|
-
jobCompleted.tryEmit(() => ({ job: convertJob(job), returnValue }));
|
|
95
|
-
});
|
|
96
|
-
worker.on("failed", (job, error) => {
|
|
97
|
-
this.logger.logWarn({ name: "BullMQ - job failed", queueName: job.queueName, job: job.id, message: error.message, stack: error.stack });
|
|
98
|
-
jobFailed.tryEmit(() => ({ job: convertJob(job), error }));
|
|
99
|
-
});
|
|
100
|
-
worker.on("progress", (job, progress) => {
|
|
101
|
-
this.logger.logDebug({ name: "BullMQ - job progress", queueName: job.queueName, job: job.id, progress: typeof progress === "number" ? progress : JSON.stringify(progress) });
|
|
102
|
-
jobProgress.tryEmit(() => ({ job: convertJob(job), progress }));
|
|
103
|
-
});
|
|
104
|
-
return worker;
|
|
105
|
-
}
|
|
106
|
-
};
|
|
52
|
+
return new BullMQWrapper(this.logger, name, this.connection);
|
|
107
53
|
}
|
|
108
54
|
initializeSchedulers(queueSchedulers) {
|
|
109
55
|
// TODO: is support needed to close the schedulers?
|
|
110
56
|
queueSchedulers.forEach(name => new bullmq_1.QueueScheduler(name, { connection: this.connection }));
|
|
111
57
|
}
|
|
112
58
|
}
|
|
59
|
+
class BullMQWrapper {
|
|
60
|
+
constructor(logger, queueName, connection) {
|
|
61
|
+
this.logger = logger;
|
|
62
|
+
this.queueName = queueName;
|
|
63
|
+
this.connection = connection;
|
|
64
|
+
this.jobActive = new QueueEventEmitter();
|
|
65
|
+
this.jobCompleted = new QueueEventEmitter();
|
|
66
|
+
this.jobFailed = new QueueEventEmitter();
|
|
67
|
+
this.jobProgress = new QueueEventEmitter();
|
|
68
|
+
this.workers = new Map();
|
|
69
|
+
this.workerId = 1;
|
|
70
|
+
}
|
|
71
|
+
get onJobActive() {
|
|
72
|
+
return this.jobActive.event;
|
|
73
|
+
}
|
|
74
|
+
get onJobCompleted() {
|
|
75
|
+
return this.jobCompleted.event;
|
|
76
|
+
}
|
|
77
|
+
get onJobFailed() {
|
|
78
|
+
return this.jobFailed.event;
|
|
79
|
+
}
|
|
80
|
+
get onJobProgress() {
|
|
81
|
+
return this.jobProgress.event;
|
|
82
|
+
}
|
|
83
|
+
add(options) {
|
|
84
|
+
const jobOptions = {
|
|
85
|
+
delay: options.delay,
|
|
86
|
+
repeat: options.repeat && {
|
|
87
|
+
cron: options.repeat.cron,
|
|
88
|
+
immediately: options.repeat.immediate
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
this.instance = this.instance || new bullmq_1.Queue(this.queueName, { connection: this.connection });
|
|
92
|
+
return this.instance.add(options.name || "", options.data || {}, jobOptions).then(job => convertJob(job));
|
|
93
|
+
}
|
|
94
|
+
async close() {
|
|
95
|
+
const promises = Array.from(this.workers.values()).map(worker => worker.close());
|
|
96
|
+
this.workers.clear();
|
|
97
|
+
if (this.instance) {
|
|
98
|
+
promises.push(this.instance.close());
|
|
99
|
+
this.instance = undefined;
|
|
100
|
+
}
|
|
101
|
+
await Promise.all(promises);
|
|
102
|
+
}
|
|
103
|
+
process(optionsOrCallback) {
|
|
104
|
+
const options = this.getProcessOptions(optionsOrCallback);
|
|
105
|
+
const worker = new bullmq_1.Worker(this.queueName, job => options.callback(convertJob(job)), {
|
|
106
|
+
concurrency: options.concurrency,
|
|
107
|
+
connection: this.connection
|
|
108
|
+
});
|
|
109
|
+
// BullMQ recommends attaching to 'error' and since we don't get job info pass the error to the logger
|
|
110
|
+
// https://docs.bullmq.io/guide/workers
|
|
111
|
+
worker.on("error", error => this.logger.logError(error));
|
|
112
|
+
worker.on("active", job => {
|
|
113
|
+
this.logger.logDebug({ name: "BullMQ - job active", queueName: job.queueName, job: job.id });
|
|
114
|
+
this.jobActive.tryEmit(() => ({ job: convertJob(job) }));
|
|
115
|
+
});
|
|
116
|
+
worker.on("completed", (job, returnValue) => {
|
|
117
|
+
this.logger.logDebug({ name: "BullMQ - job completed", queueName: job.queueName, job: job.id });
|
|
118
|
+
this.jobCompleted.tryEmit(() => ({ job: convertJob(job), returnValue }));
|
|
119
|
+
});
|
|
120
|
+
worker.on("failed", (job, error) => {
|
|
121
|
+
this.logger.logWarn({ name: "BullMQ - job failed", queueName: job.queueName, job: job.id, message: error.message, stack: error.stack });
|
|
122
|
+
this.jobFailed.tryEmit(() => ({ job: convertJob(job), error }));
|
|
123
|
+
});
|
|
124
|
+
worker.on("progress", (job, progress) => {
|
|
125
|
+
this.logger.logDebug({ name: "BullMQ - job progress", queueName: job.queueName, job: job.id, progress: typeof progress === "number" ? progress : JSON.stringify(progress) });
|
|
126
|
+
this.jobProgress.tryEmit(() => ({ job: convertJob(job), progress }));
|
|
127
|
+
});
|
|
128
|
+
const id = this.workerId++;
|
|
129
|
+
this.workers.set(id, worker);
|
|
130
|
+
return {
|
|
131
|
+
close: () => {
|
|
132
|
+
const worker = this.workers.get(id);
|
|
133
|
+
if (worker) {
|
|
134
|
+
this.workers.delete(id);
|
|
135
|
+
return worker.close();
|
|
136
|
+
}
|
|
137
|
+
return Promise.resolve();
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
getProcessOptions(optionsOrCallback) {
|
|
142
|
+
return typeof optionsOrCallback === "function" ? { callback: optionsOrCallback } : optionsOrCallback;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
113
145
|
class QueueEventEmitter extends event_emitter_1.EventEmitter {
|
|
114
146
|
tryEmit(getArgs) {
|
|
115
147
|
return this.count ? super.emit(getArgs()) : Promise.resolve();
|
|
116
148
|
}
|
|
117
149
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzQ0FBNkY7QUFDN0YsNENBQXdEO0FBQ3hELHdDQUVzQjtBQUN0Qix3REFBNEQ7QUFDNUQsbUNBQTRGO0FBbUI1RixTQUFTLFVBQVUsQ0FBQyxHQUFRO0lBQ3hCLE9BQU87UUFDSCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFO1FBQ2hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLElBQUksUUFBUTtZQUNSLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN4QixDQUFDO1FBQ0QsY0FBYyxDQUFDLFFBQVE7WUFDbkIsT0FBTyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVZLFFBQUEseUJBQXlCLEdBQUcsbUJBQVksRUFBNkIsQ0FBQztBQUVuRixNQUFhLGlCQUFpQjtJQUE5QjtRQUNxQixhQUFRLEdBQXlCLEVBQUUsQ0FBQztRQUU1QyxTQUFJLEdBQUcsY0FBYyxDQUFDO1FBQ3RCLGlCQUFZLEdBQUc7WUFDcEIsdUJBQWE7WUFDYixtQkFBVztTQUNkLENBQUM7SUFpQk4sQ0FBQztJQWZHLFVBQVUsQ0FBQyxJQUF3QjtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLGlDQUF5QixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUMxRCxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFPLENBQUMsRUFDckIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVB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QUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4SSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdLLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0IsT0FBTztZQUNILEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLElBQUksTUFBTSxFQUFFO29CQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN4QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDekI7Z0JBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0lBRU8saUJBQWlCLENBQUMsaUJBQXVEO1FBQzdFLE9BQU8sT0FBTyxpQkFBaUIsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0lBQ3pHLENBQUM7Q0FDSjtBQUVELE1BQU0saUJBQXlCLFNBQVEsNEJBQW1CO0lBQ3RELE9BQU8sQ0FBQyxPQUFvQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FDSiJ9
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shrub/queue-bullmq",
|
|
3
3
|
"description": "Provides a job/worker queue using BullMQ.",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.55",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -24,14 +24,14 @@
|
|
|
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.55",
|
|
28
|
+
"@shrub/logging": "0.5.55",
|
|
29
|
+
"@shrub/queue": "0.5.55",
|
|
30
30
|
"@sprig/event-emitter": "^0.2.0",
|
|
31
31
|
"bullmq": "^1.80.6"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/ioredis": "^4.28.2"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "eb0b4b2f6ec6a73cab49ea5c48857057c44f39cb"
|
|
37
37
|
}
|