@vendure/job-queue-plugin 3.3.2 → 3.3.4-master-202506180847
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/package/bullmq/bullmq-job-queue-strategy.d.ts +7 -0
- package/package/bullmq/bullmq-job-queue-strategy.js +14 -7
- package/package/bullmq/bullmq-job-queue-strategy.js.map +1 -1
- package/package/bullmq/clean-indexed-sets-task.d.ts +2 -0
- package/package/bullmq/clean-indexed-sets-task.js +14 -0
- package/package/bullmq/clean-indexed-sets-task.js.map +1 -0
- package/package/bullmq/constants.d.ts +2 -0
- package/package/bullmq/constants.js +3 -1
- package/package/bullmq/constants.js.map +1 -1
- package/package/bullmq/job-list-index.service.d.ts +62 -0
- package/package/bullmq/job-list-index.service.js +297 -0
- package/package/bullmq/job-list-index.service.js.map +1 -0
- package/package/bullmq/plugin.d.ts +4 -4
- package/package/bullmq/plugin.js +8 -4
- package/package/bullmq/plugin.js.map +1 -1
- package/package/bullmq/scripts/get-jobs-by-type.d.ts +2 -2
- package/package/bullmq/scripts/get-jobs-by-type.js +106 -75
- package/package/bullmq/scripts/get-jobs-by-type.js.map +1 -1
- package/package/bullmq/utils.d.ts +2 -0
- package/package/bullmq/utils.js +8 -0
- package/package/bullmq/utils.js.map +1 -0
- package/package/pub-sub/plugin.d.ts +14 -0
- package/package/pub-sub/plugin.js +14 -0
- package/package/pub-sub/plugin.js.map +1 -1
- package/package/pub-sub/pub-sub-job-queue-strategy.d.ts +13 -0
- package/package/pub-sub/pub-sub-job-queue-strategy.js +13 -0
- package/package/pub-sub/pub-sub-job-queue-strategy.js.map +1 -1
- package/package.json +20 -4
|
@@ -5,6 +5,12 @@ import { ID, Injector, InspectableJobQueueStrategy, Job, JobData, PaginatedList
|
|
|
5
5
|
* This JobQueueStrategy uses [BullMQ](https://docs.bullmq.io/) to implement a push-based job queue
|
|
6
6
|
* on top of Redis. It should not be used alone, but as part of the {@link BullMQJobQueuePlugin}.
|
|
7
7
|
*
|
|
8
|
+
* Note: To use this strategy, you need to manually install the `bullmq` package:
|
|
9
|
+
*
|
|
10
|
+
* ```shell
|
|
11
|
+
* npm install bullmq@^5.4.2
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
8
14
|
* @docsCategory core plugins/JobQueuePlugin
|
|
9
15
|
*/
|
|
10
16
|
export declare class BullMQJobQueueStrategy implements InspectableJobQueueStrategy {
|
|
@@ -14,6 +20,7 @@ export declare class BullMQJobQueueStrategy implements InspectableJobQueueStrate
|
|
|
14
20
|
private worker;
|
|
15
21
|
private workerProcessor;
|
|
16
22
|
private options;
|
|
23
|
+
private jobListIndexService;
|
|
17
24
|
private readonly queueNameProcessFnMap;
|
|
18
25
|
private cancellationSub;
|
|
19
26
|
private readonly cancelRunningJob$;
|
|
@@ -10,15 +10,21 @@ const ioredis_1 = require("ioredis");
|
|
|
10
10
|
const rxjs_1 = require("rxjs");
|
|
11
11
|
const operators_1 = require("rxjs/operators");
|
|
12
12
|
const constants_1 = require("./constants");
|
|
13
|
+
const job_list_index_service_1 = require("./job-list-index.service");
|
|
13
14
|
const redis_health_indicator_1 = require("./redis-health-indicator");
|
|
14
15
|
const get_jobs_by_type_1 = require("./scripts/get-jobs-by-type");
|
|
15
|
-
const
|
|
16
|
-
const DEFAULT_CONCURRENCY = 3;
|
|
16
|
+
const utils_1 = require("./utils");
|
|
17
17
|
/**
|
|
18
18
|
* @description
|
|
19
19
|
* This JobQueueStrategy uses [BullMQ](https://docs.bullmq.io/) to implement a push-based job queue
|
|
20
20
|
* on top of Redis. It should not be used alone, but as part of the {@link BullMQJobQueuePlugin}.
|
|
21
21
|
*
|
|
22
|
+
* Note: To use this strategy, you need to manually install the `bullmq` package:
|
|
23
|
+
*
|
|
24
|
+
* ```shell
|
|
25
|
+
* npm install bullmq@^5.4.2
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
22
28
|
* @docsCategory core plugins/JobQueuePlugin
|
|
23
29
|
*/
|
|
24
30
|
class BullMQJobQueueStrategy {
|
|
@@ -37,6 +43,7 @@ class BullMQJobQueueStrategy {
|
|
|
37
43
|
async init(injector) {
|
|
38
44
|
var _a, _b, _c, _d, _e;
|
|
39
45
|
const options = injector.get(constants_1.BULLMQ_PLUGIN_OPTIONS);
|
|
46
|
+
this.jobListIndexService = injector.get(job_list_index_service_1.JobListIndexService);
|
|
40
47
|
this.options = Object.assign(Object.assign({}, options), { workerOptions: Object.assign(Object.assign({}, options.workerOptions), { removeOnComplete: (_b = (_a = options.workerOptions) === null || _a === void 0 ? void 0 : _a.removeOnComplete) !== null && _b !== void 0 ? _b : {
|
|
41
48
|
age: 60 * 60 * 24 * 30,
|
|
42
49
|
count: 5000,
|
|
@@ -57,7 +64,7 @@ class BullMQJobQueueStrategy {
|
|
|
57
64
|
else {
|
|
58
65
|
core_1.Logger.info('Connected to Redis ✔', constants_1.loggerCtx);
|
|
59
66
|
}
|
|
60
|
-
this.queue = new bullmq_1.Queue(QUEUE_NAME, Object.assign(Object.assign({}, options.queueOptions), { connection: this.redisConnection }))
|
|
67
|
+
this.queue = new bullmq_1.Queue(constants_1.QUEUE_NAME, Object.assign(Object.assign({}, options.queueOptions), { connection: this.redisConnection }))
|
|
61
68
|
.on('error', (e) => core_1.Logger.error(`BullMQ Queue error: ${JSON.stringify(e.message)}`, constants_1.loggerCtx, e.stack))
|
|
62
69
|
.on('resumed', () => core_1.Logger.verbose('BullMQ Queue resumed', constants_1.loggerCtx))
|
|
63
70
|
.on('paused', () => core_1.Logger.verbose('BullMQ Queue paused', constants_1.loggerCtx));
|
|
@@ -101,6 +108,7 @@ class BullMQJobQueueStrategy {
|
|
|
101
108
|
};
|
|
102
109
|
// Subscription-mode Redis connection for the cancellation messages
|
|
103
110
|
this.cancellationSub = new ioredis_1.Redis(this.connectionOptions);
|
|
111
|
+
this.jobListIndexService.register(this.redisConnection, this.queue);
|
|
104
112
|
}
|
|
105
113
|
async destroy() {
|
|
106
114
|
var _a;
|
|
@@ -219,8 +227,8 @@ class BullMQJobQueueStrategy {
|
|
|
219
227
|
async start(queueName, process) {
|
|
220
228
|
this.queueNameProcessFnMap.set(queueName, process);
|
|
221
229
|
if (!this.worker) {
|
|
222
|
-
const options = Object.assign(Object.assign({ concurrency: DEFAULT_CONCURRENCY }, this.options.workerOptions), { connection: this.redisConnection });
|
|
223
|
-
this.worker = new bullmq_1.Worker(QUEUE_NAME, this.workerProcessor, options)
|
|
230
|
+
const options = Object.assign(Object.assign({ concurrency: constants_1.DEFAULT_CONCURRENCY }, this.options.workerOptions), { connection: this.redisConnection });
|
|
231
|
+
this.worker = new bullmq_1.Worker(constants_1.QUEUE_NAME, this.workerProcessor, options)
|
|
224
232
|
.on('error', e => core_1.Logger.error(`BullMQ Worker error: ${e.message}`, constants_1.loggerCtx, e.stack))
|
|
225
233
|
.on('closing', e => core_1.Logger.verbose(`BullMQ Worker closing: ${e}`, constants_1.loggerCtx))
|
|
226
234
|
.on('closed', () => core_1.Logger.verbose('BullMQ Worker closed', constants_1.loggerCtx))
|
|
@@ -320,8 +328,7 @@ class BullMQJobQueueStrategy {
|
|
|
320
328
|
}
|
|
321
329
|
callCustomScript(scriptDef, args) {
|
|
322
330
|
return new Promise((resolve, reject) => {
|
|
323
|
-
|
|
324
|
-
const prefix = (_b = (_a = this.options.workerOptions) === null || _a === void 0 ? void 0 : _a.prefix) !== null && _b !== void 0 ? _b : 'bull';
|
|
331
|
+
const prefix = (0, utils_1.getPrefix)(this.options);
|
|
325
332
|
this.redisConnection[scriptDef.name](`${prefix}:${this.queue.name}:`, ...args, (err, result) => {
|
|
326
333
|
if (err) {
|
|
327
334
|
reject(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bullmq-job-queue-strategy.js","sourceRoot":"","sources":["../../src/bullmq/bullmq-job-queue-strategy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bullmq-job-queue-strategy.js","sourceRoot":"","sources":["../../src/bullmq/bullmq-job-queue-strategy.ts"],"names":[],"mappings":";;;AAAA,yEAA+E;AAC/E,mEAAsE;AACtE,wCASuB;AACvB,mCAQgB;AAChB,mCAAsC;AACtC,qCAAuD;AACvD,+BAA+B;AAC/B,8CAAmD;AAEnD,2CAMqB;AACrB,qEAA+D;AAC/D,qEAAgE;AAChE,iEAA2D;AAE3D,mCAAoC;AAEpC;;;;;;;;;;;;GAYG;AACH,MAAa,sBAAsB;IAAnC;QAQqB,0BAAqB,GAAG,IAAI,GAAG,EAAsC,CAAC;QAEtE,sBAAiB,GAAG,IAAI,cAAO,EAAU,CAAC;QAC1C,uBAAkB,GAAG,YAAY,CAAC;QAClC,4BAAuB,GAAG,wBAAwB,CAAC;QA2PnD,kCAA6B,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;YAChF,IAAI,OAAO,KAAK,IAAI,CAAC,kBAAkB,IAAI,KAAK,EAAE,CAAC;gBAC/C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;QACL,CAAC,CAAC;QAEM,YAAO,GAAG,KAAK,CAAC;IAyH5B,CAAC;IAxXG,KAAK,CAAC,IAAI,CAAC,QAAkB;;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAsB,iCAAqB,CAAC,CAAC;QACzE,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC,4CAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,mCACL,OAAO,KACV,aAAa,kCACN,OAAO,CAAC,aAAa,KACxB,gBAAgB,EAAE,MAAA,MAAA,OAAO,CAAC,aAAa,0CAAE,gBAAgB,mCAAI;oBACzD,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;oBACtB,KAAK,EAAE,IAAI;iBACd,EACD,YAAY,EAAE,MAAA,MAAA,OAAO,CAAC,aAAa,0CAAE,YAAY,mCAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAEnG,CAAC;QACF,IAAI,CAAC,iBAAiB;YAClB,MAAA,OAAO,CAAC,UAAU,mCACjB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAmB,CAAC;QAEpF,IAAI,CAAC,eAAe;YAChB,IAAI,CAAC,iBAAiB,YAAY,qBAAY;gBAC1C,CAAC,CAAC,IAAI,CAAC,iBAAiB;gBACxB,CAAC,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE5C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,6CAAoB,CAAC,CAAC;QAChE,aAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,qBAAS,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACjC,aAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,qBAAS,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,aAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,qBAAS,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,cAAK,CAAC,sBAAU,kCAAO,OAAO,CAAC,YAAY,KAAE,UAAU,EAAE,IAAI,CAAC,eAAe,IAAG;aAC5F,EAAE,CAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE,CACpB,aAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,qBAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CACvF;aACA,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,aAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,qBAAS,CAAC,CAAC;aACtE,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,qBAAS,CAAC,CAAC,CAAC;QAE1E,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,EAAC,OAAO,EAAC,EAAE;;YACnC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAC/B,aAAM,CAAC,KAAK,CACR,OAAO,MAAA,OAAO,CAAC,EAAE,mCAAI,EAAE,KAAK,SAAS,uBAAuB,OAAO,CAAC,YAAY,GAAG,CAAC,OAChF,MAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,mCAAI,CAC7B,GAAG,CACN,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACjD,MAAM,UAAU,GAAG,IAAI,cAAO,EAAQ,CAAC;gBACvC,IAAI,CAAC;oBACD,2BAA2B;oBAC3B,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAElE,IAAI,CAAC,iBAAiB;yBACjB,IAAI,CACD,IAAA,kBAAM,EAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC,EACjC,IAAA,qBAAS,EAAC,UAAU,CAAC,CACxB;yBACA,SAAS,CAAC,GAAG,EAAE;;wBACZ,aAAM,CAAC,IAAI,CAAC,eAAe,MAAA,GAAG,CAAC,EAAE,mCAAI,EAAE,eAAe,EAAE,qBAAS,CAAC,CAAC;wBACnE,GAAG,CAAC,MAAM,EAAE,CAAC;oBACjB,CAAC,CAAC,CAAC;oBACP,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;oBAEpC,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBAClC,OAAO,MAAM,CAAC;gBAClB,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBACd,MAAM,CAAC,CAAC;gBACZ,CAAC;wBAAS,CAAC;oBACP,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;wBACT,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAA,GAAG,CAAC,EAAE,0CAAE,QAAQ,EAAE,CAAC,CAAC;oBACtF,CAAC;oBACD,UAAU,CAAC,IAAI,EAAE,CAAC;oBAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC1B,CAAC;YACL,CAAC;YACD,MAAM,IAAI,0BAAmB,CAAC,uCAAuC,SAAS,GAAG,CAAC,CAAC;QACvF,CAAC,CAAC;QACF,mEAAmE;QACnE,IAAI,CAAC,eAAe,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,iBAAiC,CAAC,CAAC;QACzE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,OAAO;;QACT,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,GAAG,CAAsC,GAAc;;QACzD,MAAM,OAAO,GAAG,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,UAAU,mDAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,mCAAI,GAAG,CAAC,OAAO,mCAAI,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,UAAU,mDAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,mCAAI;YAC7D,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,aAAa;SACtB,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,aAAa,mDAAG,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,mCAAI,EAAE,CAAC;QAChF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,kBACxD,QAAQ,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAC5E,gBAAgB,EACrB,CAAC;QACH,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;gBAC1C,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC;oBACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACjD,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;oBACvB,OAAO,GAAG,CAAC;gBACf,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,8BAA8B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1E,aAAM,CAAC,KAAK,CAAC,OAAO,EAAE,qBAAS,CAAC,CAAC;oBACjC,MAAM,IAAI,0BAAmB,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;;QACnC,MAAM,IAAI,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,EAAE,CAAC;QACjC,IAAI,QAAQ,GAAc,yBAAa,CAAC;QACxC,MAAM,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,KAAK,CAAC;QAC3C,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,EAAE,CAAC;YAClB,QAAQ,WAAW,CAAC,EAAE,EAAE,CAAC;gBACrB,KAAK,SAAS;oBACV,QAAQ,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;oBACvD,MAAM;gBACV,KAAK,SAAS;oBACV,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACtB,MAAM;gBACV,KAAK,WAAW;oBACZ,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC;oBACzB,MAAM;gBACV,KAAK,UAAU;oBACX,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACtB,MAAM;gBACV,KAAK,QAAQ;oBACT,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACtB,MAAM;gBACV,KAAK,WAAW;oBACZ,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACtB,MAAM;YACd,CAAC;QACL,CAAC;QACD,MAAM,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,SAAS,CAAC;QACjD,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,EAAE,KAAI,IAAI,EAAE,CAAC;YAC5B,QAAQ;gBACJ,aAAa,CAAC,EAAE,KAAK,IAAI;oBACrB,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC;oBACzB,CAAC,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACnG,CAAC;QAED,IAAI,KAAK,GAAe,EAAE,CAAC;QAC3B,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,gCAAa,EAAE;gBAC/D,IAAI;gBACJ,IAAI;gBACJ,MAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,0CAAE,SAAS,0CAAE,EAAE,mCAAI,EAAE;gBACpC,GAAG,QAAQ;aACd,CAAC,CAAC;YACH,KAAK,GAAG,CACJ,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACZ,OAAO,YAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,CAAC,CAAC,CACL,CACJ,CAAC,MAAM,CAAC,iCAAkB,CAAC,CAAC;YAC7B,UAAU,GAAG,KAAK,CAAC;QACvB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,MAAM,IAAI,0BAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAS;QACxB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,iCAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAM;QAChB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,iBAAiB,CAAC,UAAqB,EAAE,SAAgB;QAC3D,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,aAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,qBAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5C,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,KAAK,CACP,SAAiB,EACjB,OAAyC;QAEzC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,OAAO,iCACT,WAAW,EAAE,+BAAmB,IAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,KAC7B,UAAU,EAAE,IAAI,CAAC,eAAe,GACnC,CAAC;YACF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,sBAAU,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;iBAC9D,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,aAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,EAAE,qBAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;iBACvF,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,aAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE,EAAE,qBAAS,CAAC,CAAC;iBAC5E,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,qBAAS,CAAC,CAAC;iBACrE,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAyB,EAAE,KAAK,EAAE,EAAE;;gBAC/C,aAAM,CAAC,IAAI,CACP,OAAO,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,EAAE,mCAAI,cAAc,KAAK,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,mCAAI,cAAc,qBAC5D,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,mCAAI,SACzB,OAAO,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,QAAQ,mCAAI,CAAC,GAAG,EACjC,qBAAS,CACZ,CAAC;YACN,CAAC,CAAC;iBACD,EAAE,CAAC,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC7B,aAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,UAAU,EAAE,qBAAS,CAAC,CAAC;YAClE,CAAC,CAAC;iBACD,EAAE,CAAC,WAAW,EAAE,CAAC,GAAa,EAAE,EAAE;;gBAC/B,aAAM,CAAC,KAAK,CAAC,OAAO,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,EAAE,mCAAI,YAAY,KAAK,GAAG,CAAC,IAAI,aAAa,EAAE,qBAAS,CAAC,CAAC;YACtF,CAAC,CAAC,CAAC;YACP,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IAUD,KAAK,CAAC,IAAI,CACN,SAAiB,EACjB,OAAyC;QAEzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC;gBACD,aAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAS,CAAC,CAAC;gBAEzC,IAAI,KAAqB,CAAC;gBAC1B,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;oBAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACtD,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC;wBAClB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;wBAChD,aAAM,CAAC,IAAI,CACP,cAAc,WAAW,WACrB,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAC/B,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAC/C,qBAAS,CACZ,CAAC;wBACF,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;4BACpB,KAAK,WAAW,EAAE,CAAC;wBACvB,CAAC,EAAE,IAAI,CAAC,CAAC;oBACb,CAAC;gBACL,CAAC,CAAC;gBACF,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACpB,KAAK,WAAW,EAAE,CAAC;gBACvB,CAAC,EAAE,IAAI,CAAC,CAAC;gBAET,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC1B,aAAM,CAAC,IAAI,CAAC,eAAe,EAAE,qBAAS,CAAC,CAAC;gBACxC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACzB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,aAAM,CAAC,IAAI,CAAC,cAAc,EAAE,qBAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,aAAM,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,KAAa;QAC/C,2CAA2C;QAC3C,mDAAmD;QACnD,kEAAkE;QAClE,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,OAAiB;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,IAAI,UAAG,CAAC;YACX,SAAS,EAAE,OAAO,CAAC,IAAI;YACvB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,YAAY;YAC9B,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1E,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YACxE,KAAK,EAAE,OAAO,CAAC,YAAY;YAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ;YAC3B,MAAM,EAAE,OAAO,CAAC,WAAW;YAC3B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACjE,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,OAAiB;;QACpC,MAAM,KAAK,GAAG,MAAA,OAAO,CAAC,EAAE,0CAAE,QAAQ,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,WAAW;gBACZ,OAAO,0BAAQ,CAAC,SAAS,CAAC;YAC9B,KAAK,QAAQ;gBACT,OAAO,0BAAQ,CAAC,MAAM,CAAC;YAC3B,KAAK,SAAS,CAAC;YACf,KAAK,kBAAkB,CAAC;YACxB,KAAK,aAAa;gBACd,OAAO,0BAAQ,CAAC,OAAO,CAAC;YAC5B,KAAK,SAAS;gBACV,OAAO,0BAAQ,CAAC,QAAQ,CAAC;YAC7B,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACZ,MAAM,WAAW,GACb,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC;gBACzF,OAAO,WAAW,CAAC,CAAC,CAAC,0BAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,0BAAQ,CAAC,OAAO,CAAC;YAC/D,CAAC;YACD,KAAK,SAAS,CAAC;YACf;gBACI,MAAM,IAAI,0BAAmB,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAEO,gBAAgB,CACpB,SAA0C,EAC1C,IAAU;QAEV,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,eAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,CACzC,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAC/B,GAAG,IAAI,EACP,CAAC,GAAQ,EAAE,MAAW,EAAE,EAAE;gBACtB,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,sBAAsB;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACnC,KAAK,CAAC,aAAa,CAAC,gCAAa,CAAC,IAAI,EAAE;YACpC,YAAY,EAAE,gCAAa,CAAC,YAAY;YACxC,GAAG,EAAE,gCAAa,CAAC,MAAM;SAC5B,CAAC,CAAC;IACP,CAAC;CACJ;AAtYD,wDAsYC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cleanIndexedSetsTask = void 0;
|
|
4
|
+
const core_1 = require("@vendure/core");
|
|
5
|
+
const job_list_index_service_1 = require("./job-list-index.service");
|
|
6
|
+
exports.cleanIndexedSetsTask = new core_1.ScheduledTask({
|
|
7
|
+
id: 'clean-job-queue-index',
|
|
8
|
+
description: 'Cleans up the index used to speed up job queue listing operations',
|
|
9
|
+
schedule: cron => cron.everyMinute(),
|
|
10
|
+
async execute({ injector }) {
|
|
11
|
+
return injector.get(job_list_index_service_1.JobListIndexService).cleanupIndexedSets();
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=clean-indexed-sets-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean-indexed-sets-task.js","sourceRoot":"","sources":["../../src/bullmq/clean-indexed-sets-task.ts"],"names":[],"mappings":";;;AAAA,wCAA8C;AAE9C,qEAA+D;AAElD,QAAA,oBAAoB,GAAG,IAAI,oBAAa,CAAC;IAClD,EAAE,EAAE,uBAAuB;IAC3B,WAAW,EAAE,mEAAmE;IAChF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;IACpC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE;QACtB,OAAO,QAAQ,CAAC,GAAG,CAAC,4CAAmB,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAClE,CAAC;CACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { JobType } from 'bullmq';
|
|
2
2
|
export declare const loggerCtx = "BullMQJobQueuePlugin";
|
|
3
3
|
export declare const BULLMQ_PLUGIN_OPTIONS: unique symbol;
|
|
4
|
+
export declare const QUEUE_NAME = "vendure-job-queue";
|
|
5
|
+
export declare const DEFAULT_CONCURRENCY = 3;
|
|
4
6
|
export declare const ALL_JOB_TYPES: JobType[];
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ALL_JOB_TYPES = exports.BULLMQ_PLUGIN_OPTIONS = exports.loggerCtx = void 0;
|
|
3
|
+
exports.ALL_JOB_TYPES = exports.DEFAULT_CONCURRENCY = exports.QUEUE_NAME = exports.BULLMQ_PLUGIN_OPTIONS = exports.loggerCtx = void 0;
|
|
4
4
|
exports.loggerCtx = 'BullMQJobQueuePlugin';
|
|
5
5
|
exports.BULLMQ_PLUGIN_OPTIONS = Symbol('BULLMQ_PLUGIN_OPTIONS');
|
|
6
|
+
exports.QUEUE_NAME = 'vendure-job-queue';
|
|
7
|
+
exports.DEFAULT_CONCURRENCY = 3;
|
|
6
8
|
exports.ALL_JOB_TYPES = [
|
|
7
9
|
'completed',
|
|
8
10
|
'failed',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/bullmq/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAG,sBAAsB,CAAC;AACnC,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/bullmq/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,SAAS,GAAG,sBAAsB,CAAC;AACnC,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACxD,QAAA,UAAU,GAAG,mBAAmB,CAAC;AACjC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAExB,QAAA,aAAa,GAAc;IACpC,WAAW;IACX,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,kBAAkB;IAClB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,aAAa;CAChB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ProcessContext } from '@vendure/core';
|
|
2
|
+
import { Queue } from 'bullmq';
|
|
3
|
+
import Redis, { Cluster } from 'ioredis';
|
|
4
|
+
import { BullMQPluginOptions } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* @description
|
|
7
|
+
* In order to efficiently query jobs in the job queue, we use a "sorted set" in Redis to track jobs
|
|
8
|
+
* added to each queue. This allows to quickly fetch a list of jobs in a given queue without needing
|
|
9
|
+
* to iterate over all jobs in the queue and read the job data.
|
|
10
|
+
*
|
|
11
|
+
* By using this approach we can achieve a several order of magnitude improvement in performance
|
|
12
|
+
* over the former approach of iterating over all jobs via the custom LUA script.
|
|
13
|
+
*
|
|
14
|
+
* This also means that we need to periodically clean up the sorted sets to remove jobs that have
|
|
15
|
+
* been removed from the queue (via the automatic removal features of BullMQ). Why do we need to
|
|
16
|
+
* do this scheduled cleanup? Because currently BullMQ does not provide an event for when a job
|
|
17
|
+
* is automatically removed from the queue, so we cannot listen for that event and remove. The
|
|
18
|
+
* "removed" event is only emitted when a job is removed manually via the `remove()` method.
|
|
19
|
+
* See https://github.com/taskforcesh/bullmq/issues/3209#issuecomment-2795102551
|
|
20
|
+
*/
|
|
21
|
+
export declare class JobListIndexService {
|
|
22
|
+
private readonly options;
|
|
23
|
+
private readonly processContext;
|
|
24
|
+
private readonly BATCH_SIZE;
|
|
25
|
+
private redis;
|
|
26
|
+
private queue;
|
|
27
|
+
private queueEvents;
|
|
28
|
+
private allStates;
|
|
29
|
+
constructor(options: BullMQPluginOptions, processContext: ProcessContext);
|
|
30
|
+
/**
|
|
31
|
+
* @description
|
|
32
|
+
* Should be called by the BullMQJobQueueStrategy as soon as the Redis connection and Queue
|
|
33
|
+
* object are available in the init() function.
|
|
34
|
+
*/
|
|
35
|
+
register(redisConnection: Redis | Cluster, queue: Queue): void;
|
|
36
|
+
private setupEventListeners;
|
|
37
|
+
/**
|
|
38
|
+
* When a job's state changes, we need to update the indexed set
|
|
39
|
+
* to reflect the new state of the job.
|
|
40
|
+
*/
|
|
41
|
+
private updateJobIndex;
|
|
42
|
+
private removeJobFromAllIndices;
|
|
43
|
+
/**
|
|
44
|
+
* @description
|
|
45
|
+
* This method is used to migrate existing jobs to use the indexed set method of tracking jobs.
|
|
46
|
+
* When the app bootstraps, we check to see if the existing jobs in the queue have a corresponding
|
|
47
|
+
* indexed set. If not, we create the indexed set and add the jobs to it.
|
|
48
|
+
*/
|
|
49
|
+
migrateExistingJobs(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* @description
|
|
52
|
+
* This method is used to clean up the indexed sets to remove jobs that have been removed from the queue.
|
|
53
|
+
* This is done by checking each job in the indexed set to see if it still exists in the queue. If it does not,
|
|
54
|
+
* it is removed from the indexed set.
|
|
55
|
+
*/
|
|
56
|
+
cleanupIndexedSets(): Promise<{
|
|
57
|
+
queueName: string;
|
|
58
|
+
jobsRemoved: number;
|
|
59
|
+
}[]>;
|
|
60
|
+
private createSortedSetKey;
|
|
61
|
+
private createQueueItemKey;
|
|
62
|
+
}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.JobListIndexService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const core_1 = require("@vendure/core");
|
|
18
|
+
const bullmq_1 = require("bullmq");
|
|
19
|
+
const constants_1 = require("./constants");
|
|
20
|
+
const utils_1 = require("./utils");
|
|
21
|
+
/**
|
|
22
|
+
* @description
|
|
23
|
+
* In order to efficiently query jobs in the job queue, we use a "sorted set" in Redis to track jobs
|
|
24
|
+
* added to each queue. This allows to quickly fetch a list of jobs in a given queue without needing
|
|
25
|
+
* to iterate over all jobs in the queue and read the job data.
|
|
26
|
+
*
|
|
27
|
+
* By using this approach we can achieve a several order of magnitude improvement in performance
|
|
28
|
+
* over the former approach of iterating over all jobs via the custom LUA script.
|
|
29
|
+
*
|
|
30
|
+
* This also means that we need to periodically clean up the sorted sets to remove jobs that have
|
|
31
|
+
* been removed from the queue (via the automatic removal features of BullMQ). Why do we need to
|
|
32
|
+
* do this scheduled cleanup? Because currently BullMQ does not provide an event for when a job
|
|
33
|
+
* is automatically removed from the queue, so we cannot listen for that event and remove. The
|
|
34
|
+
* "removed" event is only emitted when a job is removed manually via the `remove()` method.
|
|
35
|
+
* See https://github.com/taskforcesh/bullmq/issues/3209#issuecomment-2795102551
|
|
36
|
+
*/
|
|
37
|
+
let JobListIndexService = class JobListIndexService {
|
|
38
|
+
constructor(options, processContext) {
|
|
39
|
+
this.options = options;
|
|
40
|
+
this.processContext = processContext;
|
|
41
|
+
this.BATCH_SIZE = 100;
|
|
42
|
+
this.allStates = [
|
|
43
|
+
'wait',
|
|
44
|
+
'active',
|
|
45
|
+
'completed',
|
|
46
|
+
'failed',
|
|
47
|
+
'delayed',
|
|
48
|
+
'waiting-children',
|
|
49
|
+
'prioritized',
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @description
|
|
54
|
+
* Should be called by the BullMQJobQueueStrategy as soon as the Redis connection and Queue
|
|
55
|
+
* object are available in the init() function.
|
|
56
|
+
*/
|
|
57
|
+
register(redisConnection, queue) {
|
|
58
|
+
this.redis = redisConnection;
|
|
59
|
+
this.queue = queue;
|
|
60
|
+
this.queueEvents = new bullmq_1.QueueEvents(queue.name, { connection: redisConnection });
|
|
61
|
+
this.setupEventListeners();
|
|
62
|
+
void this.migrateExistingJobs();
|
|
63
|
+
}
|
|
64
|
+
setupEventListeners() {
|
|
65
|
+
if (this.processContext.isServer)
|
|
66
|
+
return;
|
|
67
|
+
if (!this.queueEvents || !this.queue)
|
|
68
|
+
return;
|
|
69
|
+
// When a job is added to the queue
|
|
70
|
+
this.queueEvents.on('waiting', ({ jobId }) => {
|
|
71
|
+
void this.updateJobIndex(jobId, 'wait');
|
|
72
|
+
});
|
|
73
|
+
this.queueEvents.on('waiting-children', ({ jobId }) => {
|
|
74
|
+
void this.updateJobIndex(jobId, 'waiting-children');
|
|
75
|
+
});
|
|
76
|
+
// When a job starts processing
|
|
77
|
+
this.queueEvents.on('active', ({ jobId }) => {
|
|
78
|
+
void this.updateJobIndex(jobId, 'active');
|
|
79
|
+
});
|
|
80
|
+
// When a job completes successfully
|
|
81
|
+
this.queueEvents.on('completed', ({ jobId }) => {
|
|
82
|
+
void this.updateJobIndex(jobId, 'completed');
|
|
83
|
+
});
|
|
84
|
+
// When a job fails
|
|
85
|
+
this.queueEvents.on('failed', ({ jobId }) => {
|
|
86
|
+
void this.updateJobIndex(jobId, 'failed');
|
|
87
|
+
});
|
|
88
|
+
// When a job is delayed
|
|
89
|
+
this.queueEvents.on('delayed', ({ jobId }) => {
|
|
90
|
+
void this.updateJobIndex(jobId, 'delayed');
|
|
91
|
+
});
|
|
92
|
+
// When a job is removed
|
|
93
|
+
this.queueEvents.on('removed', ({ jobId }) => {
|
|
94
|
+
void this.removeJobFromAllIndices(jobId);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* When a job's state changes, we need to update the indexed set
|
|
99
|
+
* to reflect the new state of the job.
|
|
100
|
+
*/
|
|
101
|
+
async updateJobIndex(jobId, state) {
|
|
102
|
+
if (!this.redis || !this.queue)
|
|
103
|
+
return;
|
|
104
|
+
try {
|
|
105
|
+
const job = await this.queue.getJob(jobId);
|
|
106
|
+
if (!job)
|
|
107
|
+
return;
|
|
108
|
+
const timestamp = job.timestamp;
|
|
109
|
+
const targetKey = this.createSortedSetKey(job.name, state);
|
|
110
|
+
// Remove from all state indices first
|
|
111
|
+
await this.removeJobFromAllIndices(jobId);
|
|
112
|
+
// Add to the specific state index
|
|
113
|
+
const result = await this.redis.zadd(targetKey, timestamp, jobId);
|
|
114
|
+
if (result === 1) {
|
|
115
|
+
core_1.Logger.debug(`Added job ${jobId} to indexed key: ${targetKey}`, constants_1.loggerCtx);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
const error = err;
|
|
120
|
+
core_1.Logger.error(`Failed to update job index: ${error.message}`, constants_1.loggerCtx);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async removeJobFromAllIndices(jobId) {
|
|
124
|
+
if (!this.redis || !this.queue)
|
|
125
|
+
return;
|
|
126
|
+
try {
|
|
127
|
+
const job = await this.queue.getJob(jobId);
|
|
128
|
+
if (!job)
|
|
129
|
+
return;
|
|
130
|
+
const pipeline = this.redis.pipeline();
|
|
131
|
+
for (const state of this.allStates) {
|
|
132
|
+
const indexedKey = this.createSortedSetKey(job.name, state);
|
|
133
|
+
pipeline.zrem(indexedKey, jobId);
|
|
134
|
+
}
|
|
135
|
+
await pipeline.exec();
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
const error = err;
|
|
139
|
+
core_1.Logger.error(`Failed to remove job from indices: ${error.message}`, constants_1.loggerCtx);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* @description
|
|
144
|
+
* This method is used to migrate existing jobs to use the indexed set method of tracking jobs.
|
|
145
|
+
* When the app bootstraps, we check to see if the existing jobs in the queue have a corresponding
|
|
146
|
+
* indexed set. If not, we create the indexed set and add the jobs to it.
|
|
147
|
+
*/
|
|
148
|
+
async migrateExistingJobs() {
|
|
149
|
+
var _a;
|
|
150
|
+
if (this.processContext.isServer) {
|
|
151
|
+
// We only want to perform this work on the worker.
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (!this.redis || !this.queue) {
|
|
155
|
+
throw new Error('Redis and Queue must be registered before migrating jobs');
|
|
156
|
+
}
|
|
157
|
+
core_1.Logger.debug('Starting migration of existing jobs to indexed sets...', constants_1.loggerCtx);
|
|
158
|
+
// Get counts of jobs in each state
|
|
159
|
+
const counts = await this.queue.getJobCounts();
|
|
160
|
+
core_1.Logger.debug(`Found job counts: ${JSON.stringify(counts)}`, constants_1.loggerCtx);
|
|
161
|
+
let totalMigrated = 0;
|
|
162
|
+
// Get all jobs from each state
|
|
163
|
+
for (const state of this.allStates) {
|
|
164
|
+
if (counts[state] > 0) {
|
|
165
|
+
core_1.Logger.debug(`Processing ${counts[state]} jobs in ${state} state`, constants_1.loggerCtx);
|
|
166
|
+
if (!this.queue) {
|
|
167
|
+
core_1.Logger.error('Queue is not initialized', constants_1.loggerCtx);
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const jobs = await this.queue.getJobs([state], 0, counts[state]);
|
|
172
|
+
if (!jobs) {
|
|
173
|
+
core_1.Logger.error(`getJobs returned undefined for state ${state}`, constants_1.loggerCtx);
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
core_1.Logger.debug(`Retrieved ${jobs.length} jobs for state ${state}`, constants_1.loggerCtx);
|
|
177
|
+
// Group jobs by queue name
|
|
178
|
+
const jobsByQueue = new Map();
|
|
179
|
+
for (const job of jobs) {
|
|
180
|
+
if (!job) {
|
|
181
|
+
core_1.Logger.error('Null job found in results', constants_1.loggerCtx);
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (!jobsByQueue.has(job.name)) {
|
|
185
|
+
jobsByQueue.set(job.name, []);
|
|
186
|
+
}
|
|
187
|
+
(_a = jobsByQueue.get(job.name)) === null || _a === void 0 ? void 0 : _a.push(job);
|
|
188
|
+
}
|
|
189
|
+
// Create sorted sets for each queue in this state
|
|
190
|
+
for (const [queueName, queueJobs] of jobsByQueue) {
|
|
191
|
+
const indexedKey = this.createSortedSetKey(queueName, state);
|
|
192
|
+
const exists = await this.redis.exists(indexedKey);
|
|
193
|
+
if (exists === 0) {
|
|
194
|
+
core_1.Logger.info(`Creating indexed set for queue: ${queueName} in state: ${state}`, constants_1.loggerCtx);
|
|
195
|
+
const pipeline = this.redis.pipeline();
|
|
196
|
+
// Add jobs in batches
|
|
197
|
+
for (let i = 0; i < queueJobs.length; i += this.BATCH_SIZE) {
|
|
198
|
+
const batch = queueJobs.slice(i, i + this.BATCH_SIZE);
|
|
199
|
+
const args = batch
|
|
200
|
+
.flatMap(job => [job.timestamp, job.id])
|
|
201
|
+
.filter((id) => id != null);
|
|
202
|
+
pipeline.zadd(indexedKey, ...args);
|
|
203
|
+
}
|
|
204
|
+
await pipeline.exec();
|
|
205
|
+
totalMigrated += queueJobs.length;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
const error = err;
|
|
211
|
+
core_1.Logger.error(`Failed to migrate jobs: ${error.message}`, constants_1.loggerCtx);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (totalMigrated > 0) {
|
|
216
|
+
core_1.Logger.info(`Successfully migrated ${totalMigrated} jobs to indexed sets`, constants_1.loggerCtx);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* @description
|
|
221
|
+
* This method is used to clean up the indexed sets to remove jobs that have been removed from the queue.
|
|
222
|
+
* This is done by checking each job in the indexed set to see if it still exists in the queue. If it does not,
|
|
223
|
+
* it is removed from the indexed set.
|
|
224
|
+
*/
|
|
225
|
+
async cleanupIndexedSets() {
|
|
226
|
+
if (!this.redis || !this.queue) {
|
|
227
|
+
throw new Error('Redis and Queue must be registered before cleaning up indexed sets');
|
|
228
|
+
}
|
|
229
|
+
// Get all queue names from our indexed sets
|
|
230
|
+
const allStateKeys = this.createSortedSetKey('*');
|
|
231
|
+
const keys = await this.redis.keys(allStateKeys);
|
|
232
|
+
const result = [];
|
|
233
|
+
const startTime = Date.now();
|
|
234
|
+
core_1.Logger.verbose(`Cleaning up ${keys.length} indexed sets`, constants_1.loggerCtx);
|
|
235
|
+
for (const key of keys) {
|
|
236
|
+
let cursor = '0';
|
|
237
|
+
let jobsRemoved = 0;
|
|
238
|
+
// Use ZSCAN to iterate over the set in batches
|
|
239
|
+
do {
|
|
240
|
+
const [nextCursor, elements] = await this.redis.zscan(key, cursor, 'COUNT', this.BATCH_SIZE);
|
|
241
|
+
cursor = nextCursor;
|
|
242
|
+
if (elements.length > 0) {
|
|
243
|
+
// Extract job IDs from the elements (they come as [score, id] pairs)
|
|
244
|
+
const jobIds = elements.filter((_, i) => i % 2 === 0);
|
|
245
|
+
// Check existence of jobs directly in Redis
|
|
246
|
+
const pipeline = this.redis.pipeline();
|
|
247
|
+
for (const jobId of jobIds) {
|
|
248
|
+
pipeline.exists(this.createQueueItemKey(jobId));
|
|
249
|
+
}
|
|
250
|
+
const existsResults = await pipeline.exec();
|
|
251
|
+
// Filter out non-existent jobs
|
|
252
|
+
const jobsToRemove = jobIds.filter((jobId, i) => {
|
|
253
|
+
var _a;
|
|
254
|
+
const exists = ((_a = existsResults === null || existsResults === void 0 ? void 0 : existsResults[i]) === null || _a === void 0 ? void 0 : _a[1]) === 1;
|
|
255
|
+
return !exists;
|
|
256
|
+
});
|
|
257
|
+
if (jobsToRemove.length > 0) {
|
|
258
|
+
await this.redis.zrem(key, ...jobsToRemove);
|
|
259
|
+
jobsRemoved += jobsToRemove.length;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
} while (cursor !== '0');
|
|
263
|
+
if (jobsRemoved > 0) {
|
|
264
|
+
core_1.Logger.verbose(`Cleaned up ${jobsRemoved} non-existent jobs from indexed key: ${key}`, constants_1.loggerCtx);
|
|
265
|
+
}
|
|
266
|
+
result.push({ queueName: key, jobsRemoved });
|
|
267
|
+
}
|
|
268
|
+
const endTime = Date.now();
|
|
269
|
+
core_1.Logger.verbose(`Cleaned up ${keys.length} indexed sets in ${endTime - startTime}ms`, constants_1.loggerCtx);
|
|
270
|
+
return result;
|
|
271
|
+
}
|
|
272
|
+
createSortedSetKey(queueName, state) {
|
|
273
|
+
const prefix = (0, utils_1.getPrefix)(this.options);
|
|
274
|
+
if (!this.queue) {
|
|
275
|
+
throw new Error('Queue is not initialized');
|
|
276
|
+
}
|
|
277
|
+
let key = `${prefix}:${this.queue.name}:queue:${queueName}`;
|
|
278
|
+
if (state) {
|
|
279
|
+
key += `:${state}`;
|
|
280
|
+
}
|
|
281
|
+
return key;
|
|
282
|
+
}
|
|
283
|
+
createQueueItemKey(jobId) {
|
|
284
|
+
const prefix = (0, utils_1.getPrefix)(this.options);
|
|
285
|
+
if (!this.queue) {
|
|
286
|
+
throw new Error('Queue is not initialized');
|
|
287
|
+
}
|
|
288
|
+
return `${prefix}:${this.queue.name}:${jobId}`;
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
exports.JobListIndexService = JobListIndexService;
|
|
292
|
+
exports.JobListIndexService = JobListIndexService = __decorate([
|
|
293
|
+
(0, common_1.Injectable)(),
|
|
294
|
+
__param(0, (0, common_1.Inject)(constants_1.BULLMQ_PLUGIN_OPTIONS)),
|
|
295
|
+
__metadata("design:paramtypes", [Object, core_1.ProcessContext])
|
|
296
|
+
], JobListIndexService);
|
|
297
|
+
//# sourceMappingURL=job-list-index.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-list-index.service.js","sourceRoot":"","sources":["../../src/bullmq/job-list-index.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,11 +20,11 @@ import { BullMQPluginOptions } from './types';
|
|
|
20
20
|
*
|
|
21
21
|
* ## Installation
|
|
22
22
|
*
|
|
23
|
-
*
|
|
23
|
+
* Note: To use this plugin, you need to manually install the `bullmq` package:
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* ```shell
|
|
26
|
+
* npm install bullmq@^5.4.2
|
|
27
|
+
* ```
|
|
28
28
|
*
|
|
29
29
|
* **Note:** The v1.x version of this plugin is designed to work with bullmq v1.x, etc.
|
|
30
30
|
*
|
package/package/bullmq/plugin.js
CHANGED
|
@@ -9,7 +9,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.BullMQJobQueuePlugin = void 0;
|
|
10
10
|
const core_1 = require("@vendure/core");
|
|
11
11
|
const bullmq_job_queue_strategy_1 = require("./bullmq-job-queue-strategy");
|
|
12
|
+
const clean_indexed_sets_task_1 = require("./clean-indexed-sets-task");
|
|
12
13
|
const constants_1 = require("./constants");
|
|
14
|
+
const job_list_index_service_1 = require("./job-list-index.service");
|
|
13
15
|
const redis_health_check_strategy_1 = require("./redis-health-check-strategy");
|
|
14
16
|
const redis_health_indicator_1 = require("./redis-health-indicator");
|
|
15
17
|
const redis_job_buffer_storage_strategy_1 = require("./redis-job-buffer-storage-strategy");
|
|
@@ -34,11 +36,11 @@ const redis_job_buffer_storage_strategy_1 = require("./redis-job-buffer-storage-
|
|
|
34
36
|
*
|
|
35
37
|
* ## Installation
|
|
36
38
|
*
|
|
37
|
-
*
|
|
39
|
+
* Note: To use this plugin, you need to manually install the `bullmq` package:
|
|
38
40
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
41
|
+
* ```shell
|
|
42
|
+
* npm install bullmq@^5.4.2
|
|
43
|
+
* ```
|
|
42
44
|
*
|
|
43
45
|
* **Note:** The v1.x version of this plugin is designed to work with bullmq v1.x, etc.
|
|
44
46
|
*
|
|
@@ -211,11 +213,13 @@ exports.BullMQJobQueuePlugin = BullMQJobQueuePlugin = __decorate([
|
|
|
211
213
|
config.jobQueueOptions.jobQueueStrategy = new bullmq_job_queue_strategy_1.BullMQJobQueueStrategy();
|
|
212
214
|
config.jobQueueOptions.jobBufferStorageStrategy = new redis_job_buffer_storage_strategy_1.RedisJobBufferStorageStrategy();
|
|
213
215
|
config.systemOptions.healthChecks.push(new redis_health_check_strategy_1.RedisHealthCheckStrategy());
|
|
216
|
+
config.schedulerOptions.tasks.push(clean_indexed_sets_task_1.cleanIndexedSetsTask);
|
|
214
217
|
return config;
|
|
215
218
|
},
|
|
216
219
|
providers: [
|
|
217
220
|
{ provide: constants_1.BULLMQ_PLUGIN_OPTIONS, useFactory: () => BullMQJobQueuePlugin.options },
|
|
218
221
|
redis_health_indicator_1.RedisHealthIndicator,
|
|
222
|
+
job_list_index_service_1.JobListIndexService,
|
|
219
223
|
],
|
|
220
224
|
compatibility: '^3.0.0',
|
|
221
225
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/bullmq/plugin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,wCAAkE;AAElE,2EAAqE;AACrE,2CAAoD;AACpD,+EAAyE;AACzE,qEAAgE;AAChE,2FAAoF;AAGpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmLG;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/bullmq/plugin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,wCAAkE;AAElE,2EAAqE;AACrE,uEAAiE;AACjE,2CAAoD;AACpD,qEAA+D;AAC/D,+EAAyE;AACzE,qEAAgE;AAChE,2FAAoF;AAGpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmLG;AAiBI,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAG7B;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,OAA4B;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAXY,oDAAoB;+BAApB,oBAAoB;IAhBhC,IAAA,oBAAa,EAAC;QACX,OAAO,EAAE,CAAC,yBAAkB,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,eAAe,CAAC,gBAAgB,GAAG,IAAI,kDAAsB,EAAE,CAAC;YACvE,MAAM,CAAC,eAAe,CAAC,wBAAwB,GAAG,IAAI,iEAA6B,EAAE,CAAC;YACtF,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,sDAAwB,EAAE,CAAC,CAAC;YACvE,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,8CAAoB,CAAC,CAAC;YACzD,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,SAAS,EAAE;YACP,EAAE,OAAO,EAAE,iCAAqB,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE;YAClF,6CAAoB;YACpB,4CAAmB;SACtB;QACD,aAAa,EAAE,QAAQ;KAC1B,CAAC;GACW,oBAAoB,CAWhC"}
|
|
@@ -1,110 +1,141 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getJobsByType = void 0;
|
|
4
|
+
// language=Lua
|
|
4
5
|
const script = `--[[
|
|
5
|
-
Get job ids per provided states and filter by name
|
|
6
|
+
Get job ids per provided states and filter by name - Optimized version using indexed structure
|
|
6
7
|
Input:
|
|
7
8
|
KEYS[1] 'prefix'
|
|
8
|
-
ARGV[1]
|
|
9
|
-
ARGV[2]
|
|
9
|
+
ARGV[1] skip
|
|
10
|
+
ARGV[2] take
|
|
10
11
|
ARGV[3] filterName
|
|
11
12
|
ARGV[4...] types
|
|
12
13
|
]]
|
|
13
14
|
local rcall = redis.call
|
|
14
15
|
local prefix = KEYS[1]
|
|
15
|
-
local
|
|
16
|
-
local
|
|
16
|
+
local skip = tonumber(ARGV[1])
|
|
17
|
+
local take = tonumber(ARGV[2])
|
|
17
18
|
local filterName = ARGV[3]
|
|
18
19
|
local results = {}
|
|
20
|
+
local totalResults = 0
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
--
|
|
23
|
-
--
|
|
24
|
-
|
|
25
|
-
local typesInUnion = {}
|
|
26
|
-
|
|
27
|
-
-- Initialize an empty array to hold lists to include. The "active" and "wait" lists are
|
|
28
|
-
-- regular lists
|
|
29
|
-
local listsToInclude = {}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-- Iterate through ARGV starting from the first element (ARGV[1]) up to the end
|
|
33
|
-
for i = 4, #ARGV do
|
|
34
|
-
local setKey = prefix .. ARGV[i]
|
|
35
|
-
|
|
36
|
-
-- Check if the setKey is valid (e.g., it exists and is a sorted set)
|
|
37
|
-
local targetExists = redis.call('EXISTS', setKey)
|
|
38
|
-
local listType = redis.call('TYPE', setKey).ok
|
|
39
|
-
|
|
40
|
-
if targetExists == 1 and listType == 'zset' then
|
|
41
|
-
-- Add the valid set to the array
|
|
42
|
-
table.insert(setsToUnionize, setKey)
|
|
43
|
-
table.insert(typesInUnion, ARGV[i])
|
|
44
|
-
end
|
|
45
|
-
if targetExists == 1 and listType == 'list' then
|
|
46
|
-
-- Add the valid set to the array
|
|
47
|
-
table.insert(listsToInclude, setKey)
|
|
48
|
-
table.insert(typesInUnion, ARGV[i])
|
|
49
|
-
end
|
|
50
|
-
end
|
|
22
|
+
-- redis.log(redis.LOG_NOTICE, 'Filter name: "' .. filterName .. '"')
|
|
23
|
+
-- redis.log(redis.LOG_NOTICE, 'Filter name length: ' .. tostring(#filterName))
|
|
24
|
+
-- redis.log(redis.LOG_NOTICE, 'Number of ARGV: ' .. tostring(#ARGV))
|
|
25
|
+
-- redis.log(redis.LOG_NOTICE, 'skip: "' .. tostring(skip) .. '"')
|
|
26
|
+
-- redis.log(redis.LOG_NOTICE, 'take: "' .. tostring(take) .. '"')
|
|
51
27
|
|
|
52
|
-
--
|
|
53
|
-
local
|
|
28
|
+
-- Create a temporary key for merging results
|
|
29
|
+
local tempKey = prefix .. 'temp:merge:' .. math.random(1000000)
|
|
30
|
+
local sourceKeys = {}
|
|
54
31
|
|
|
55
|
-
|
|
56
|
-
|
|
32
|
+
-- Function to count jobs in a sorted set
|
|
33
|
+
local function countJobsInSortedSet(key)
|
|
34
|
+
return rcall('ZCARD', key) or 0
|
|
57
35
|
end
|
|
58
36
|
|
|
59
|
-
--
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
local numSets = #setsToUnionize
|
|
63
|
-
redis.call('ZUNIONSTORE', tempSortedSetUnionKey, numSets, unpack(setsToUnionize))
|
|
37
|
+
-- Function to count jobs in a list
|
|
38
|
+
local function countJobsInList(key)
|
|
39
|
+
return rcall('LLEN', key) or 0
|
|
64
40
|
end
|
|
65
41
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
42
|
+
-- First count total jobs and collect source keys
|
|
43
|
+
if filterName ~= "" then
|
|
44
|
+
-- When filtering by name, we need to check each state
|
|
45
|
+
for i = 4, #ARGV do
|
|
46
|
+
local state = ARGV[i]
|
|
47
|
+
-- redis.log(redis.LOG_NOTICE, 'Processing state: "' .. state .. '"')
|
|
48
|
+
local indexedKey = prefix .. 'queue:' .. filterName .. ':' .. state
|
|
49
|
+
-- redis.log(redis.LOG_NOTICE, 'Looking for key: ' .. indexedKey)
|
|
50
|
+
local keyType = rcall('TYPE', indexedKey).ok
|
|
51
|
+
-- redis.log(redis.LOG_NOTICE, 'Key type: ' .. keyType)
|
|
52
|
+
|
|
53
|
+
if keyType == 'zset' then
|
|
54
|
+
totalResults = totalResults + countJobsInSortedSet(indexedKey)
|
|
55
|
+
table.insert(sourceKeys, indexedKey)
|
|
56
|
+
elseif keyType == 'list' then
|
|
57
|
+
totalResults = totalResults + countJobsInList(indexedKey)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
else
|
|
61
|
+
-- No filter, count all types
|
|
62
|
+
for i = 4, #ARGV do
|
|
63
|
+
local state = ARGV[i]
|
|
64
|
+
-- redis.log(redis.LOG_NOTICE, 'Processing state: "' .. state .. '"')
|
|
65
|
+
local key = prefix .. state
|
|
66
|
+
-- redis.log(redis.LOG_NOTICE, 'Looking for key: ' .. key)
|
|
67
|
+
local keyType = rcall('TYPE', key).ok
|
|
68
|
+
-- redis.log(redis.LOG_NOTICE, 'Key type: ' .. keyType)
|
|
69
|
+
|
|
70
|
+
if keyType == 'zset' then
|
|
71
|
+
totalResults = totalResults + countJobsInSortedSet(key)
|
|
72
|
+
table.insert(sourceKeys, key)
|
|
73
|
+
elseif keyType == 'list' then
|
|
74
|
+
totalResults = totalResults + countJobsInList(key)
|
|
74
75
|
end
|
|
75
76
|
end
|
|
76
77
|
end
|
|
77
78
|
|
|
79
|
+
-- If we have any sorted sets to merge, do it
|
|
80
|
+
if #sourceKeys > 0 then
|
|
81
|
+
-- Calculate how many elements we need to merge
|
|
82
|
+
local neededElements = skip + take
|
|
83
|
+
-- redis.log(redis.LOG_NOTICE, 'Number of source keys: ' .. tostring(#sourceKeys))
|
|
84
|
+
-- redis.log(redis.LOG_NOTICE, 'Needed elements: ' .. tostring(neededElements))
|
|
85
|
+
|
|
86
|
+
-- Create temporary keys for each source set with limited elements
|
|
87
|
+
local limitedKeys = {}
|
|
88
|
+
for i, sourceKey in ipairs(sourceKeys) do
|
|
89
|
+
local limitedKey = tempKey .. ':limited:' .. i
|
|
90
|
+
-- redis.log(redis.LOG_NOTICE, 'Processing source key: ' .. sourceKey)
|
|
91
|
+
-- Get only the elements we need from each source set
|
|
92
|
+
local elements = rcall('ZREVRANGE', sourceKey, 0, neededElements - 1, 'WITHSCORES')
|
|
93
|
+
-- redis.log(redis.LOG_NOTICE, 'Found ' .. tostring(#elements) .. ' elements in ' .. sourceKey)
|
|
94
|
+
if #elements > 0 then
|
|
95
|
+
-- Process elements in pairs (member, score)
|
|
96
|
+
local chunkSize = 1000 -- Process in chunks of 1000 elements
|
|
97
|
+
for j = 1, #elements, chunkSize * 2 do
|
|
98
|
+
local chunkEnd = math.min(j + chunkSize * 2 - 1, #elements)
|
|
99
|
+
local chunkArgs = {}
|
|
100
|
+
for k = j, chunkEnd, 2 do
|
|
101
|
+
local member = elements[k]
|
|
102
|
+
local score = elements[k + 1]
|
|
103
|
+
table.insert(chunkArgs, score)
|
|
104
|
+
table.insert(chunkArgs, member)
|
|
105
|
+
end
|
|
106
|
+
if #chunkArgs > 0 then
|
|
107
|
+
rcall('ZADD', limitedKey, unpack(chunkArgs))
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
table.insert(limitedKeys, limitedKey)
|
|
111
|
+
-- redis.log(redis.LOG_NOTICE, 'Added to limited key: ' .. limitedKey)
|
|
112
|
+
end
|
|
113
|
+
end
|
|
78
114
|
|
|
79
|
-
--
|
|
80
|
-
local function compareDescending(a, b)
|
|
81
|
-
return tonumber(a) > tonumber(b)
|
|
82
|
-
end
|
|
115
|
+
-- redis.log(redis.LOG_NOTICE, 'Number of limited keys: ' .. tostring(#limitedKeys))
|
|
83
116
|
|
|
84
|
-
|
|
85
|
-
|
|
117
|
+
if #limitedKeys > 0 then
|
|
118
|
+
-- Merge the limited sets
|
|
119
|
+
rcall('ZUNIONSTORE', tempKey, #limitedKeys, unpack(limitedKeys))
|
|
120
|
+
-- redis.log(redis.LOG_NOTICE, 'Merged sets into: ' .. tempKey)
|
|
86
121
|
|
|
87
|
-
|
|
88
|
-
|
|
122
|
+
-- Get the paginated results from the merged set
|
|
123
|
+
results = rcall('ZREVRANGE', tempKey, skip, skip + take - 1)
|
|
124
|
+
-- redis.log(redis.LOG_NOTICE, 'Got ' .. tostring(#results) .. ' results from merged set')
|
|
89
125
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
totalResults = totalResults + 1
|
|
97
|
-
elseif filterName == "" then
|
|
98
|
-
if rangeStart <= totalResults and #filteredResults < rangeEnd then
|
|
99
|
-
table.insert(filteredResults, job)
|
|
126
|
+
-- Clean up temporary limited keys
|
|
127
|
+
for _, key in ipairs(limitedKeys) do
|
|
128
|
+
rcall('DEL', key)
|
|
129
|
+
end
|
|
130
|
+
else
|
|
131
|
+
-- redis.log(redis.LOG_NOTICE, 'No elements found in any source sets')
|
|
100
132
|
end
|
|
101
|
-
totalResults = totalResults + 1
|
|
102
|
-
end
|
|
103
133
|
end
|
|
104
134
|
|
|
105
|
-
|
|
135
|
+
-- Clean up temporary key
|
|
136
|
+
rcall('DEL', tempKey)
|
|
106
137
|
|
|
107
|
-
return {totalResults,
|
|
138
|
+
return {totalResults, results}
|
|
108
139
|
`;
|
|
109
140
|
exports.getJobsByType = {
|
|
110
141
|
script,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-jobs-by-type.js","sourceRoot":"","sources":["../../../src/bullmq/scripts/get-jobs-by-type.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"get-jobs-by-type.js","sourceRoot":"","sources":["../../../src/bullmq/scripts/get-jobs-by-type.ts"],"names":[],"mappings":";;;AAEA,eAAe;AACf,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsId,CAAC;AAEW,QAAA,aAAa,GAGtB;IACA,MAAM;IACN,YAAY,EAAE,CAAC;IACf,IAAI,EAAE,eAAe;CACxB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPrefix = getPrefix;
|
|
4
|
+
function getPrefix(options) {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
return (_b = (_a = options.workerOptions) === null || _a === void 0 ? void 0 : _a.prefix) !== null && _b !== void 0 ? _b : 'bull';
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/bullmq/utils.ts"],"names":[],"mappings":";;AAEA,8BAEC;AAFD,SAAgB,SAAS,CAAC,OAA4B;;IAClD,OAAO,MAAA,MAAA,OAAO,CAAC,aAAa,0CAAE,MAAM,mCAAI,MAAM,CAAC;AACnD,CAAC"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { Type } from '@vendure/core';
|
|
2
2
|
import { PubSubOptions } from './options';
|
|
3
|
+
/**
|
|
4
|
+
* @description
|
|
5
|
+
* This plugin uses Google Cloud Pub/Sub to implement a job queue strategy for Vendure.
|
|
6
|
+
*
|
|
7
|
+
* ## Installation
|
|
8
|
+
*
|
|
9
|
+
* Note: To use this plugin, you need to manually install the `@google-cloud/pubsub` package:
|
|
10
|
+
*
|
|
11
|
+
* ```shell
|
|
12
|
+
* npm install @google-cloud/pubsub@^2.8.0
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @docsCategory core plugins/JobQueuePlugin
|
|
16
|
+
*/
|
|
3
17
|
export declare class PubSubPlugin {
|
|
4
18
|
private static options;
|
|
5
19
|
static init(options: PubSubOptions): Type<PubSubPlugin>;
|
|
@@ -12,6 +12,20 @@ const pubsub_1 = require("@google-cloud/pubsub");
|
|
|
12
12
|
const core_1 = require("@vendure/core");
|
|
13
13
|
const constants_1 = require("./constants");
|
|
14
14
|
const pub_sub_job_queue_strategy_1 = require("./pub-sub-job-queue-strategy");
|
|
15
|
+
/**
|
|
16
|
+
* @description
|
|
17
|
+
* This plugin uses Google Cloud Pub/Sub to implement a job queue strategy for Vendure.
|
|
18
|
+
*
|
|
19
|
+
* ## Installation
|
|
20
|
+
*
|
|
21
|
+
* Note: To use this plugin, you need to manually install the `@google-cloud/pubsub` package:
|
|
22
|
+
*
|
|
23
|
+
* ```shell
|
|
24
|
+
* npm install @google-cloud/pubsub@^2.8.0
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @docsCategory core plugins/JobQueuePlugin
|
|
28
|
+
*/
|
|
15
29
|
let PubSubPlugin = PubSubPlugin_1 = class PubSubPlugin {
|
|
16
30
|
static init(options) {
|
|
17
31
|
this.options = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/pub-sub/plugin.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,iDAA8C;AAC9C,wCAAwE;AAExE,2CAA8C;AAE9C,6EAAsE;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/pub-sub/plugin.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,iDAA8C;AAC9C,wCAAwE;AAExE,2CAA8C;AAE9C,6EAAsE;AAEtE;;;;;;;;;;;;;GAaG;AAaI,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAGrB,MAAM,CAAC,IAAI,CAAC,OAAsB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,cAAY,CAAC;IACxB,CAAC;CACJ,CAAA;AAPY,oCAAY;uBAAZ,YAAY;IAZxB,IAAA,oBAAa,EAAC;QACX,OAAO,EAAE,CAAC,yBAAkB,CAAC;QAC7B,SAAS,EAAE;YACP,EAAE,OAAO,EAAE,2BAAe,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE;YACpE,EAAE,OAAO,EAAE,eAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,eAAM,EAAE,EAAE;SACtD;QACD,aAAa,EAAE,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,eAAe,CAAC,gBAAgB,GAAG,IAAI,mDAAsB,EAAE,CAAC;YACvE,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,aAAa,EAAE,QAAQ;KAC1B,CAAC;GACW,YAAY,CAOxB"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import { InjectableJobQueueStrategy, Injector, Job, JobData, JobQueueStrategy } from '@vendure/core';
|
|
2
|
+
/**
|
|
3
|
+
* @description
|
|
4
|
+
* This JobQueueStrategy uses Google Cloud Pub/Sub to implement a job queue for Vendure.
|
|
5
|
+
* It should not be used alone, but as part of the {@link PubSubPlugin}.
|
|
6
|
+
*
|
|
7
|
+
* Note: To use this strategy, you need to manually install the `@google-cloud/pubsub` package:
|
|
8
|
+
*
|
|
9
|
+
* ```shell
|
|
10
|
+
* npm install @google-cloud/pubsub@^2.8.0
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @docsCategory core plugins/JobQueuePlugin
|
|
14
|
+
*/
|
|
2
15
|
export declare class PubSubJobQueueStrategy extends InjectableJobQueueStrategy implements JobQueueStrategy {
|
|
3
16
|
private concurrency;
|
|
4
17
|
private queueNamePubSubPair;
|
|
@@ -5,6 +5,19 @@ const pubsub_1 = require("@google-cloud/pubsub");
|
|
|
5
5
|
const generated_types_1 = require("@vendure/common/lib/generated-types");
|
|
6
6
|
const core_1 = require("@vendure/core");
|
|
7
7
|
const constants_1 = require("./constants");
|
|
8
|
+
/**
|
|
9
|
+
* @description
|
|
10
|
+
* This JobQueueStrategy uses Google Cloud Pub/Sub to implement a job queue for Vendure.
|
|
11
|
+
* It should not be used alone, but as part of the {@link PubSubPlugin}.
|
|
12
|
+
*
|
|
13
|
+
* Note: To use this strategy, you need to manually install the `@google-cloud/pubsub` package:
|
|
14
|
+
*
|
|
15
|
+
* ```shell
|
|
16
|
+
* npm install @google-cloud/pubsub@^2.8.0
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @docsCategory core plugins/JobQueuePlugin
|
|
20
|
+
*/
|
|
8
21
|
class PubSubJobQueueStrategy extends core_1.InjectableJobQueueStrategy {
|
|
9
22
|
constructor() {
|
|
10
23
|
super(...arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pub-sub-job-queue-strategy.js","sourceRoot":"","sources":["../../src/pub-sub/pub-sub-job-queue-strategy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pub-sub-job-queue-strategy.js","sourceRoot":"","sources":["../../src/pub-sub/pub-sub-job-queue-strategy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vendure/job-queue-plugin",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.4-master-202506180847",
|
|
4
4
|
"license": "GPL-3.0-or-later",
|
|
5
5
|
"main": "package/index.js",
|
|
6
6
|
"types": "package/index.d.ts",
|
|
@@ -27,12 +27,28 @@
|
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@google-cloud/pubsub": "^2.8.0",
|
|
30
|
-
"@vendure/common": "3.3.
|
|
31
|
-
"@vendure/core": "3.3.
|
|
30
|
+
"@vendure/common": "^3.3.4-master-202506180847",
|
|
31
|
+
"@vendure/core": "^3.3.4-master-202506180847",
|
|
32
32
|
"bullmq": "^5.4.2",
|
|
33
33
|
"ioredis": "^5.3.2",
|
|
34
34
|
"rimraf": "^5.0.5",
|
|
35
35
|
"typescript": "5.8.2"
|
|
36
36
|
},
|
|
37
|
-
"
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"@google-cloud/pubsub": "^2.8.0",
|
|
39
|
+
"bullmq": "^5.4.2",
|
|
40
|
+
"ioredis": "^5.3.2"
|
|
41
|
+
},
|
|
42
|
+
"peerDependenciesMeta": {
|
|
43
|
+
"bullmq": {
|
|
44
|
+
"optional": true
|
|
45
|
+
},
|
|
46
|
+
"ioredis": {
|
|
47
|
+
"optional": true
|
|
48
|
+
},
|
|
49
|
+
"@google-cloud/pubsub": {
|
|
50
|
+
"optional": true
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"gitHead": "ad4e717a6d973552a4139311ba7e2c466df6062d"
|
|
38
54
|
}
|