@tsed/bullmq 7.59.0 → 7.60.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/lib/cjs/BullMQModule.js +51 -56
- package/lib/cjs/BullMQModule.js.map +1 -1
- package/lib/cjs/constants/BullMQTypes.js +12 -0
- package/lib/cjs/constants/BullMQTypes.js.map +1 -0
- package/lib/cjs/constants/constants.js +5 -0
- package/lib/cjs/constants/constants.js.map +1 -0
- package/lib/cjs/decorators/InjectQueue.js +10 -0
- package/lib/cjs/decorators/InjectQueue.js.map +1 -0
- package/lib/cjs/decorators/InjectWorker.js +10 -0
- package/lib/cjs/decorators/InjectWorker.js.map +1 -0
- package/lib/cjs/decorators/JobController.js +9 -6
- package/lib/cjs/decorators/JobController.js.map +1 -1
- package/lib/cjs/decorators/index.js +2 -0
- package/lib/cjs/decorators/index.js.map +1 -1
- package/lib/cjs/dispatchers/JobDispatcher.js +8 -5
- package/lib/cjs/dispatchers/JobDispatcher.js.map +1 -1
- package/lib/cjs/index.js +11 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/utils/createQueueProvider.js +20 -0
- package/lib/cjs/utils/createQueueProvider.js.map +1 -0
- package/lib/cjs/utils/createWorkerProvider.js +20 -0
- package/lib/cjs/utils/createWorkerProvider.js.map +1 -0
- package/lib/cjs/utils/getJobToken.js +12 -0
- package/lib/cjs/utils/getJobToken.js.map +1 -0
- package/lib/cjs/utils/getQueueToken.js +8 -0
- package/lib/cjs/utils/getQueueToken.js.map +1 -0
- package/lib/cjs/utils/getWorkerToken.js +8 -0
- package/lib/cjs/utils/getWorkerToken.js.map +1 -0
- package/lib/cjs/utils/mapQueueOptions.js +13 -0
- package/lib/cjs/utils/mapQueueOptions.js.map +1 -0
- package/lib/cjs/utils/mapWorkerOptions.js +12 -0
- package/lib/cjs/utils/mapWorkerOptions.js.map +1 -0
- package/lib/esm/BullMQModule.js +52 -57
- package/lib/esm/BullMQModule.js.map +1 -1
- package/lib/esm/constants/BullMQTypes.js +9 -0
- package/lib/esm/constants/BullMQTypes.js.map +1 -0
- package/lib/esm/constants/constants.js +2 -0
- package/lib/esm/constants/constants.js.map +1 -0
- package/lib/esm/decorators/InjectQueue.js +6 -0
- package/lib/esm/decorators/InjectQueue.js.map +1 -0
- package/lib/esm/decorators/InjectWorker.js +6 -0
- package/lib/esm/decorators/InjectWorker.js.map +1 -0
- package/lib/esm/decorators/JobController.js +9 -6
- package/lib/esm/decorators/JobController.js.map +1 -1
- package/lib/esm/decorators/index.js +2 -0
- package/lib/esm/decorators/index.js.map +1 -1
- package/lib/esm/dispatchers/JobDispatcher.js +8 -5
- package/lib/esm/dispatchers/JobDispatcher.js.map +1 -1
- package/lib/esm/index.js +11 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/utils/createQueueProvider.js +16 -0
- package/lib/esm/utils/createQueueProvider.js.map +1 -0
- package/lib/esm/utils/createWorkerProvider.js +16 -0
- package/lib/esm/utils/createWorkerProvider.js.map +1 -0
- package/lib/esm/utils/getJobToken.js +7 -0
- package/lib/esm/utils/getJobToken.js.map +1 -0
- package/lib/esm/utils/getQueueToken.js +4 -0
- package/lib/esm/utils/getQueueToken.js.map +1 -0
- package/lib/esm/utils/getWorkerToken.js +4 -0
- package/lib/esm/utils/getWorkerToken.js.map +1 -0
- package/lib/esm/utils/mapQueueOptions.js +9 -0
- package/lib/esm/utils/mapQueueOptions.js.map +1 -0
- package/lib/esm/utils/mapWorkerOptions.js +8 -0
- package/lib/esm/utils/mapWorkerOptions.js.map +1 -0
- package/lib/types/BullMQModule.d.ts +9 -1
- package/lib/types/config/config.d.ts +5 -5
- package/lib/types/constants/BullMQTypes.d.ts +7 -0
- package/lib/types/constants/constants.d.ts +1 -0
- package/lib/types/contracts/JobStore.d.ts +2 -2
- package/lib/types/decorators/InjectQueue.d.ts +1 -0
- package/lib/types/decorators/InjectWorker.d.ts +1 -0
- package/lib/types/decorators/index.d.ts +2 -0
- package/lib/types/dispatchers/JobDispatcher.d.ts +2 -2
- package/lib/types/index.d.ts +11 -0
- package/lib/types/utils/createQueueProvider.d.ts +3 -0
- package/lib/types/utils/createWorkerProvider.d.ts +3 -0
- package/lib/types/utils/getJobToken.d.ts +2 -0
- package/lib/types/utils/getQueueToken.d.ts +1 -0
- package/lib/types/utils/getWorkerToken.d.ts +1 -0
- package/lib/types/utils/mapQueueOptions.d.ts +3 -0
- package/lib/types/utils/mapWorkerOptions.d.ts +3 -0
- package/package.json +5 -5
package/lib/esm/BullMQModule.js
CHANGED
|
@@ -1,76 +1,75 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { DIContext, runInContext } from "@tsed/common";
|
|
3
|
-
import {
|
|
4
|
-
import { deepMerge } from "@tsed/core";
|
|
3
|
+
import { InjectorService, Module } from "@tsed/di";
|
|
5
4
|
import { getComputedType } from "@tsed/schema";
|
|
6
|
-
import { Queue, Worker } from "bullmq";
|
|
7
5
|
import { v4 } from "uuid";
|
|
6
|
+
import { BullMQTypes } from "./constants/BullMQTypes.js";
|
|
7
|
+
import { BULLMQ } from "./constants/constants.js";
|
|
8
8
|
import { JobDispatcher } from "./dispatchers.js";
|
|
9
|
+
import { createQueueProvider } from "./utils/createQueueProvider.js";
|
|
10
|
+
import { createWorkerProvider } from "./utils/createWorkerProvider.js";
|
|
11
|
+
import { getFallbackJobToken, getJobToken } from "./utils/getJobToken.js";
|
|
12
|
+
import { mapQueueOptions } from "./utils/mapQueueOptions.js";
|
|
13
|
+
import { mapWorkerOptions } from "./utils/mapWorkerOptions.js";
|
|
9
14
|
let BullMQModule = class BullMQModule {
|
|
10
15
|
injector;
|
|
11
16
|
dispatcher;
|
|
12
|
-
bullmq;
|
|
13
17
|
constructor(injector, dispatcher) {
|
|
14
18
|
this.injector = injector;
|
|
15
19
|
this.dispatcher = dispatcher;
|
|
20
|
+
// build providers allow @Inject(queue) usage in JobController instance
|
|
21
|
+
if (this.isEnabled()) {
|
|
22
|
+
const queues = [...this.getUniqQueueNames()];
|
|
23
|
+
this.buildQueues(queues);
|
|
24
|
+
if (!this.isWorkerEnabled()) {
|
|
25
|
+
const workers = this.config.workerQueues?.length ? this.config.workerQueues : queues;
|
|
26
|
+
this.buildWorkers(workers);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
get config() {
|
|
31
|
+
return this.injector.settings.get("bullmq");
|
|
16
32
|
}
|
|
17
33
|
$beforeInit() {
|
|
18
|
-
if (
|
|
19
|
-
|
|
34
|
+
if (this.isEnabled()) {
|
|
35
|
+
this.injector.getMany(BullMQTypes.CRON).map((job) => this.dispatcher.dispatch(getComputedType(job)));
|
|
20
36
|
}
|
|
21
|
-
if (!this.bullmq.disableWorker) {
|
|
22
|
-
this.buildWorkers();
|
|
23
|
-
}
|
|
24
|
-
this.buildQueues();
|
|
25
|
-
this.injector.getMany("bullmq:cron").map((job) => this.dispatcher.dispatch(getComputedType(job)));
|
|
26
37
|
}
|
|
27
|
-
|
|
28
|
-
this.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
useValue: new Queue(queue, ops),
|
|
38
|
-
hooks: {
|
|
39
|
-
$onDestroy: (queue) => queue.close()
|
|
40
|
-
}
|
|
41
|
-
})
|
|
42
|
-
.invoke(`bullmq.queue.${queue}`);
|
|
38
|
+
isEnabled() {
|
|
39
|
+
return !!this.config;
|
|
40
|
+
}
|
|
41
|
+
isWorkerEnabled() {
|
|
42
|
+
return this.config.disableWorker;
|
|
43
|
+
}
|
|
44
|
+
buildQueues(queues) {
|
|
45
|
+
queues.forEach((queue) => {
|
|
46
|
+
const opts = mapQueueOptions(queue, this.config);
|
|
47
|
+
createQueueProvider(this.injector, queue, opts);
|
|
43
48
|
});
|
|
44
49
|
}
|
|
45
|
-
buildWorkers() {
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
...this.bullmq.defaultWorkerOptions
|
|
50
|
-
}, this.bullmq.workerOptions?.[queue]);
|
|
51
|
-
this.injector
|
|
52
|
-
.add(`bullmq.worker.${queue}`, {
|
|
53
|
-
type: "bullmq:worker",
|
|
54
|
-
useValue: new Worker(queue, this.onProcess.bind(this), ops),
|
|
55
|
-
hooks: {
|
|
56
|
-
$onDestroy: (worker) => worker.close()
|
|
57
|
-
}
|
|
58
|
-
})
|
|
59
|
-
.invoke(`bullmq.worker.${queue}`);
|
|
50
|
+
buildWorkers(workers) {
|
|
51
|
+
workers.forEach((worker) => {
|
|
52
|
+
const opts = mapWorkerOptions(worker, this.config);
|
|
53
|
+
createWorkerProvider(this.injector, worker, this.onProcess, opts);
|
|
60
54
|
});
|
|
61
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Auto discover queue names from provider and merge it with queue names from global configuration.
|
|
58
|
+
* @private
|
|
59
|
+
*/
|
|
60
|
+
getUniqQueueNames() {
|
|
61
|
+
return new Set(this.injector
|
|
62
|
+
.getProviders([BullMQTypes.JOB, BullMQTypes.CRON, BullMQTypes.FALLBACK_JOB])
|
|
63
|
+
.map((provider) => provider.store.get(BULLMQ)?.queue)
|
|
64
|
+
.concat(this.config.queues)
|
|
65
|
+
.filter(Boolean));
|
|
66
|
+
}
|
|
62
67
|
getJob(name, queueName) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
const fallbackJobForQueue = this.injector.get(`bullmq.fallback-job.${queueName}`);
|
|
68
|
-
if (fallbackJobForQueue) {
|
|
69
|
-
return fallbackJobForQueue;
|
|
70
|
-
}
|
|
71
|
-
return this.injector.get("bullmq.fallback-job");
|
|
68
|
+
return (this.injector.get(getJobToken(queueName, name)) ||
|
|
69
|
+
this.injector.get(getFallbackJobToken(queueName)) ||
|
|
70
|
+
this.injector.get(getFallbackJobToken()));
|
|
72
71
|
}
|
|
73
|
-
async
|
|
72
|
+
onProcess = async (job) => {
|
|
74
73
|
const jobService = this.getJob(job.name, job.queueName);
|
|
75
74
|
if (!jobService) {
|
|
76
75
|
this.injector.logger.warn({
|
|
@@ -113,12 +112,8 @@ let BullMQModule = class BullMQModule {
|
|
|
113
112
|
finally {
|
|
114
113
|
await $ctx.destroy();
|
|
115
114
|
}
|
|
116
|
-
}
|
|
115
|
+
};
|
|
117
116
|
};
|
|
118
|
-
__decorate([
|
|
119
|
-
Constant("bullmq"),
|
|
120
|
-
__metadata("design:type", Object)
|
|
121
|
-
], BullMQModule.prototype, "bullmq", void 0);
|
|
122
117
|
BullMQModule = __decorate([
|
|
123
118
|
Module(),
|
|
124
119
|
__metadata("design:paramtypes", [InjectorService, JobDispatcher])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BullMQModule.js","sourceRoot":"","sources":["../../src/BullMQModule.ts"],"names":[],"mappings":";AAAA,OAAO,EAAa,SAAS,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AACjE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"BullMQModule.js","sourceRoot":"","sources":["../../src/BullMQModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var BullMQTypes;
|
|
2
|
+
(function (BullMQTypes) {
|
|
3
|
+
BullMQTypes["CRON"] = "bullmq:cron";
|
|
4
|
+
BullMQTypes["QUEUE"] = "bullmq:queue";
|
|
5
|
+
BullMQTypes["JOB"] = "bullmq:job";
|
|
6
|
+
BullMQTypes["WORKER"] = "bullmq:worker";
|
|
7
|
+
BullMQTypes["FALLBACK_JOB"] = "bullmq:fallback-job";
|
|
8
|
+
})(BullMQTypes || (BullMQTypes = {}));
|
|
9
|
+
//# sourceMappingURL=BullMQTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BullMQTypes.js","sourceRoot":"","sources":["../../../src/constants/BullMQTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,mCAAoB,CAAA;IACpB,qCAAsB,CAAA;IACtB,iCAAkB,CAAA;IAClB,uCAAwB,CAAA;IACxB,mDAAoC,CAAA;AACtC,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InjectQueue.js","sourceRoot":"","sources":["../../../src/decorators/InjectQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InjectWorker.js","sourceRoot":"","sources":["../../../src/decorators/InjectWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAEvD,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { StoreMerge, useDecorators } from "@tsed/core";
|
|
2
2
|
import { Injectable } from "@tsed/di";
|
|
3
|
+
import { BullMQTypes } from "../constants/BullMQTypes.js";
|
|
4
|
+
import { BULLMQ } from "../constants/constants.js";
|
|
5
|
+
import { getFallbackJobToken, getJobToken } from "../utils/getJobToken.js";
|
|
3
6
|
export function JobController(name, queue = "default", opts = {}) {
|
|
4
|
-
return useDecorators(StoreMerge(
|
|
7
|
+
return useDecorators(StoreMerge(BULLMQ, {
|
|
5
8
|
name,
|
|
6
9
|
queue,
|
|
7
10
|
opts
|
|
8
11
|
}), Injectable({
|
|
9
|
-
provide:
|
|
10
|
-
type: opts.repeat ?
|
|
12
|
+
provide: getJobToken(queue, name),
|
|
13
|
+
type: opts.repeat ? BullMQTypes.CRON : BullMQTypes.JOB
|
|
11
14
|
}));
|
|
12
15
|
}
|
|
13
16
|
export function FallbackJobController(queue) {
|
|
14
|
-
return useDecorators(StoreMerge(
|
|
17
|
+
return useDecorators(StoreMerge(BULLMQ, {
|
|
15
18
|
queue
|
|
16
19
|
}), Injectable({
|
|
17
|
-
provide:
|
|
18
|
-
type:
|
|
20
|
+
provide: getFallbackJobToken(queue),
|
|
21
|
+
type: BullMQTypes.FALLBACK_JOB
|
|
19
22
|
}));
|
|
20
23
|
}
|
|
21
24
|
//# sourceMappingURL=JobController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobController.js","sourceRoot":"","sources":["../../../src/decorators/JobController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"JobController.js","sourceRoot":"","sources":["../../../src/decorators/JobController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAEtE,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAgB,SAAS,EAAE,OAAoB,EAAE;IAC3F,OAAO,aAAa,CAClB,UAAU,CAAC,MAAM,EAAE;QACjB,IAAI;QACJ,KAAK;QACL,IAAI;KACL,CAAC,EACF,UAAU,CAAC;QACT,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG;KACvD,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,aAAa,CAClB,UAAU,CAAC,MAAM,EAAE;QACjB,KAAK;KACN,CAAC,EACF,UAAU,CAAC;QACT,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC;QACnC,IAAI,EAAE,WAAW,CAAC,YAAY;KAC/B,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
/* eslint-disable require-await */
|
|
3
|
-
import { InjectorService, Service } from "@tsed/di";
|
|
4
3
|
import { Store } from "@tsed/core";
|
|
4
|
+
import { Injectable, InjectorService } from "@tsed/di";
|
|
5
|
+
import { BULLMQ } from "../constants/constants.js";
|
|
6
|
+
import { getJobToken } from "../utils/getJobToken.js";
|
|
7
|
+
import { getQueueToken } from "../utils/getQueueToken.js";
|
|
5
8
|
let JobDispatcher = class JobDispatcher {
|
|
6
9
|
injector;
|
|
7
10
|
constructor(injector) {
|
|
@@ -9,7 +12,7 @@ let JobDispatcher = class JobDispatcher {
|
|
|
9
12
|
}
|
|
10
13
|
async dispatch(job, payload, options = {}) {
|
|
11
14
|
const { queueName, jobName, defaultJobOptions } = await this.resolveDispatchArgs(job, payload);
|
|
12
|
-
const queue = this.injector.get(
|
|
15
|
+
const queue = this.injector.get(getQueueToken(queueName));
|
|
13
16
|
if (!queue) {
|
|
14
17
|
throw new Error(`Queue(${queueName}) not defined`);
|
|
15
18
|
}
|
|
@@ -24,7 +27,7 @@ let JobDispatcher = class JobDispatcher {
|
|
|
24
27
|
let defaultJobOptions;
|
|
25
28
|
if (typeof job === "function") {
|
|
26
29
|
// job is passed as a Type
|
|
27
|
-
const store = Store.from(job).get(
|
|
30
|
+
const store = Store.from(job).get(BULLMQ);
|
|
28
31
|
queueName = store.queue;
|
|
29
32
|
jobName = store.name;
|
|
30
33
|
defaultJobOptions = await this.retrieveJobOptionsFromClassBasedJob(store, payload);
|
|
@@ -46,7 +49,7 @@ let JobDispatcher = class JobDispatcher {
|
|
|
46
49
|
};
|
|
47
50
|
}
|
|
48
51
|
async retrieveJobOptionsFromClassBasedJob(store, payload) {
|
|
49
|
-
const job = this.injector.get(
|
|
52
|
+
const job = this.injector.get(getJobToken(store.queue, store.name));
|
|
50
53
|
if (!job) {
|
|
51
54
|
return store.opts;
|
|
52
55
|
}
|
|
@@ -61,7 +64,7 @@ let JobDispatcher = class JobDispatcher {
|
|
|
61
64
|
}
|
|
62
65
|
};
|
|
63
66
|
JobDispatcher = __decorate([
|
|
64
|
-
|
|
67
|
+
Injectable(),
|
|
65
68
|
__metadata("design:paramtypes", [InjectorService])
|
|
66
69
|
], JobDispatcher);
|
|
67
70
|
export { JobDispatcher };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobDispatcher.js","sourceRoot":"","sources":["../../../src/dispatchers/JobDispatcher.ts"],"names":[],"mappings":";AAAA,kCAAkC;AAClC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"JobDispatcher.js","sourceRoot":"","sources":["../../../src/dispatchers/JobDispatcher.ts"],"names":[],"mappings":";AAAA,kCAAkC;AAClC,OAAO,EAAC,KAAK,EAAO,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,UAAU,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AAErD,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAI9C,IAAM,aAAa,GAAnB,MAAM,aAAa;IACK;IAA7B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IASnD,KAAK,CAAC,QAAQ,CAAC,GAAyC,EAAE,OAAgB,EAAE,UAAuB,EAAE;QAC1G,MAAM,EAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE7F,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAQ,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAEjE,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,eAAe,CAAC,CAAC;SACpD;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;YACjC,GAAG,iBAAiB;YACpB,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,GAAyC,EAAE,OAAgB;QAC3F,IAAI,SAAiB,CAAC;QACtB,IAAI,OAAe,CAAC;QACpB,IAAI,iBAA0C,CAAC;QAE/C,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;YAC7B,0BAA0B;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAW,MAAM,CAAC,CAAC;YACpD,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YACxB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;YACrB,iBAAiB,GAAG,MAAM,IAAI,CAAC,mCAAmC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACpF;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAClC,wCAAwC;YACxC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;YACtB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;SACpB;aAAM;YACL,4BAA4B;YAC5B,SAAS,GAAG,SAAS,CAAC;YACtB,OAAO,GAAG,GAAG,CAAC;SACf;QAED,OAAO;YACL,SAAS;YACT,OAAO;YACP,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mCAAmC,CAAC,KAAe,EAAE,OAAgB;QACjF,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAa,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhF,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,KAAK,CAAC,IAAI,CAAC;SACnB;QAED,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC;SACnB;QAED,OAAO;YACL,GAAG,KAAK,CAAC,IAAI;YACb,KAAK;SACN,CAAC;IACJ,CAAC;CACF,CAAA;AAtEY,aAAa;IADzB,UAAU,EAAE;qCAE4B,eAAe;GAD3C,aAAa,CAsEzB;SAtEY,aAAa"}
|
package/lib/esm/index.js
CHANGED
|
@@ -3,9 +3,20 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from "./BullMQModule.js";
|
|
5
5
|
export * from "./config/config.js";
|
|
6
|
+
export * from "./constants/BullMQTypes.js";
|
|
7
|
+
export * from "./constants/constants.js";
|
|
6
8
|
export * from "./contracts/JobMethods.js";
|
|
7
9
|
export * from "./contracts/JobStore.js";
|
|
10
|
+
export * from "./decorators/InjectQueue.js";
|
|
11
|
+
export * from "./decorators/InjectWorker.js";
|
|
8
12
|
export * from "./decorators/JobController.js";
|
|
9
13
|
export * from "./dispatchers/JobDispatcher.js";
|
|
10
14
|
export * from "./dispatchers/JobDispatcherOptions.js";
|
|
15
|
+
export * from "./utils/createQueueProvider.js";
|
|
16
|
+
export * from "./utils/createWorkerProvider.js";
|
|
17
|
+
export * from "./utils/getJobToken.js";
|
|
18
|
+
export * from "./utils/getQueueToken.js";
|
|
19
|
+
export * from "./utils/getWorkerToken.js";
|
|
20
|
+
export * from "./utils/mapQueueOptions.js";
|
|
21
|
+
export * from "./utils/mapWorkerOptions.js";
|
|
11
22
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Queue } from "bullmq";
|
|
2
|
+
import { BullMQTypes } from "../constants/BullMQTypes.js";
|
|
3
|
+
import { getQueueToken } from "./getQueueToken.js";
|
|
4
|
+
export function createQueueProvider(injector, queue, opts) {
|
|
5
|
+
const token = getQueueToken(queue);
|
|
6
|
+
return injector
|
|
7
|
+
.add(token, {
|
|
8
|
+
type: BullMQTypes.QUEUE,
|
|
9
|
+
useValue: new Queue(queue, opts),
|
|
10
|
+
hooks: {
|
|
11
|
+
$onDestroy: (queue) => queue.close()
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
.invoke(token);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=createQueueProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createQueueProvider.js","sourceRoot":"","sources":["../../../src/utils/createQueueProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,EAAe,MAAM,QAAQ,CAAC;AAExD,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,UAAU,mBAAmB,CAAC,QAAyB,EAAE,KAAa,EAAE,IAAkB;IAC9F,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEnC,OAAO,QAAQ;SACZ,GAAG,CAAC,KAAK,EAAE;QACV,IAAI,EAAE,WAAW,CAAC,KAAK;QACvB,QAAQ,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAChC,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;SACrC;KACF,CAAC;SACD,MAAM,CAAQ,KAAK,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Worker } from "bullmq";
|
|
2
|
+
import { BullMQTypes } from "../constants/BullMQTypes.js";
|
|
3
|
+
import { getWorkerToken } from "./getWorkerToken.js";
|
|
4
|
+
export function createWorkerProvider(injector, worker, process, opts) {
|
|
5
|
+
const token = getWorkerToken(worker);
|
|
6
|
+
return injector
|
|
7
|
+
.add(token, {
|
|
8
|
+
type: BullMQTypes.WORKER,
|
|
9
|
+
useValue: new Worker(worker, process, opts),
|
|
10
|
+
hooks: {
|
|
11
|
+
$onDestroy: (worker) => worker.close()
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
.invoke(token);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=createWorkerProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createWorkerProvider.js","sourceRoot":"","sources":["../../../src/utils/createWorkerProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,MAAM,EAAgB,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,oBAAoB,CAAC,QAAyB,EAAE,MAAc,EAAE,OAA0B,EAAE,IAAmB;IAC7H,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAErC,OAAO,QAAQ;SACZ,GAAG,CAAC,KAAK,EAAE;QACV,IAAI,EAAE,WAAW,CAAC,MAAM;QACxB,QAAQ,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;QAC3C,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;SACvC;KACF,CAAC;SACD,MAAM,CAAS,KAAK,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getJobToken.js","sourceRoot":"","sources":["../../../src/utils/getJobToken.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,IAAY;IACrD,OAAO,cAAc,KAAK,IAAI,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getQueueToken.js","sourceRoot":"","sources":["../../../src/utils/getQueueToken.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,gBAAgB,KAAK,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWorkerToken.js","sourceRoot":"","sources":["../../../src/utils/getWorkerToken.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,iBAAiB,MAAM,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { deepMerge } from "@tsed/core";
|
|
2
|
+
export function mapQueueOptions(queue, bullMQConfig) {
|
|
3
|
+
return deepMerge({
|
|
4
|
+
connection: bullMQConfig.connection,
|
|
5
|
+
defaultJobOptions: bullMQConfig.defaultJobOptions,
|
|
6
|
+
...bullMQConfig.defaultQueueOptions
|
|
7
|
+
}, bullMQConfig.queueOptions?.[queue]);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=mapQueueOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapQueueOptions.js","sourceRoot":"","sources":["../../../src/utils/mapQueueOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAIrC,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,YAA0B;IACvE,OAAO,SAAS,CACd;QACE,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;QACjD,GAAG,YAAY,CAAC,mBAAmB;KACpC,EACD,YAAY,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAClC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { deepMerge } from "@tsed/core";
|
|
2
|
+
export function mapWorkerOptions(queue, bullMQConfig) {
|
|
3
|
+
return deepMerge({
|
|
4
|
+
connection: bullMQConfig.connection,
|
|
5
|
+
...bullMQConfig.defaultWorkerOptions
|
|
6
|
+
}, bullMQConfig.workerOptions?.[queue]);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=mapWorkerOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapWorkerOptions.js","sourceRoot":"","sources":["../../../src/utils/mapWorkerOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAIrC,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,YAA0B;IACxE,OAAO,SAAS,CACd;QACE,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,GAAG,YAAY,CAAC,oBAAoB;KACrC,EACD,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CACnC,CAAC;AACL,CAAC"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { BeforeInit } from "@tsed/common";
|
|
2
2
|
import { InjectorService } from "@tsed/di";
|
|
3
|
+
import { BullMQConfig } from "./config/config";
|
|
3
4
|
import { JobDispatcher } from "./dispatchers";
|
|
4
5
|
export declare class BullMQModule implements BeforeInit {
|
|
5
6
|
private readonly injector;
|
|
6
7
|
private readonly dispatcher;
|
|
7
|
-
private readonly bullmq;
|
|
8
8
|
constructor(injector: InjectorService, dispatcher: JobDispatcher);
|
|
9
|
+
get config(): BullMQConfig;
|
|
9
10
|
$beforeInit(): void;
|
|
11
|
+
isEnabled(): boolean;
|
|
12
|
+
isWorkerEnabled(): boolean | undefined;
|
|
10
13
|
private buildQueues;
|
|
11
14
|
private buildWorkers;
|
|
15
|
+
/**
|
|
16
|
+
* Auto discover queue names from provider and merge it with queue names from global configuration.
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
private getUniqQueueNames;
|
|
12
20
|
private getJob;
|
|
13
21
|
private onProcess;
|
|
14
22
|
}
|
|
@@ -3,7 +3,7 @@ export type BullMQConfig = {
|
|
|
3
3
|
/**
|
|
4
4
|
* Specify queue name's to create
|
|
5
5
|
*/
|
|
6
|
-
queues
|
|
6
|
+
queues?: string[];
|
|
7
7
|
/**
|
|
8
8
|
* Default connection to use for queue's and worker's
|
|
9
9
|
*/
|
|
@@ -17,11 +17,11 @@ export type BullMQConfig = {
|
|
|
17
17
|
*
|
|
18
18
|
* Can be extended/overridden by `queueOptions`
|
|
19
19
|
*/
|
|
20
|
-
defaultQueueOptions?:
|
|
20
|
+
defaultQueueOptions?: Partial<QueueOptions>;
|
|
21
21
|
/**
|
|
22
22
|
* Specify additional queue options by queue name
|
|
23
23
|
*/
|
|
24
|
-
queueOptions?: Record<string,
|
|
24
|
+
queueOptions?: Record<string, Partial<QueueOptions>>;
|
|
25
25
|
/**
|
|
26
26
|
* Disable the creation of any worker.
|
|
27
27
|
*
|
|
@@ -39,11 +39,11 @@ export type BullMQConfig = {
|
|
|
39
39
|
*
|
|
40
40
|
* Can be extended/overridden by `workerOptions`
|
|
41
41
|
*/
|
|
42
|
-
defaultWorkerOptions?:
|
|
42
|
+
defaultWorkerOptions?: Partial<WorkerOptions>;
|
|
43
43
|
/**
|
|
44
44
|
* Specify additional worker options by queue name
|
|
45
45
|
*/
|
|
46
|
-
workerOptions?: Record<string,
|
|
46
|
+
workerOptions?: Record<string, Partial<WorkerOptions>>;
|
|
47
47
|
};
|
|
48
48
|
declare global {
|
|
49
49
|
namespace TsED {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const BULLMQ = "bullmq";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function InjectQueue(name: string): Function;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function InjectWorker(name: string): Function;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { InjectorService } from "@tsed/di";
|
|
2
|
-
import { JobMethods } from "../contracts";
|
|
3
1
|
import { Type } from "@tsed/core";
|
|
2
|
+
import { InjectorService } from "@tsed/di";
|
|
4
3
|
import { Job as BullMQJob, JobsOptions } from "bullmq";
|
|
4
|
+
import { JobMethods } from "../contracts";
|
|
5
5
|
import type { JobDispatcherOptions } from "./JobDispatcherOptions";
|
|
6
6
|
export declare class JobDispatcher {
|
|
7
7
|
private readonly injector;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -3,8 +3,19 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from "./BullMQModule";
|
|
5
5
|
export * from "./config/config";
|
|
6
|
+
export * from "./constants/BullMQTypes";
|
|
7
|
+
export * from "./constants/constants";
|
|
6
8
|
export * from "./contracts/JobMethods";
|
|
7
9
|
export * from "./contracts/JobStore";
|
|
10
|
+
export * from "./decorators/InjectQueue";
|
|
11
|
+
export * from "./decorators/InjectWorker";
|
|
8
12
|
export * from "./decorators/JobController";
|
|
9
13
|
export * from "./dispatchers/JobDispatcher";
|
|
10
14
|
export * from "./dispatchers/JobDispatcherOptions";
|
|
15
|
+
export * from "./utils/createQueueProvider";
|
|
16
|
+
export * from "./utils/createWorkerProvider";
|
|
17
|
+
export * from "./utils/getJobToken";
|
|
18
|
+
export * from "./utils/getQueueToken";
|
|
19
|
+
export * from "./utils/getWorkerToken";
|
|
20
|
+
export * from "./utils/mapQueueOptions";
|
|
21
|
+
export * from "./utils/mapWorkerOptions";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getQueueToken(queue: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getWorkerToken(worker: string): string;
|