@vendure/job-queue-plugin 3.1.8 → 3.2.1
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/LICENSE.md +42 -42
- package/README.md +8 -8
- package/package/bullmq/bullmq-job-queue-strategy.d.ts +3 -3
- package/package/bullmq/bullmq-job-queue-strategy.js +35 -44
- package/package/bullmq/bullmq-job-queue-strategy.js.map +1 -1
- package/package/bullmq/constants.js +1 -0
- package/package/bullmq/constants.js.map +1 -1
- package/package/bullmq/plugin.d.ts +56 -0
- package/package/bullmq/plugin.js +56 -0
- package/package/bullmq/plugin.js.map +1 -1
- package/package/bullmq/redis-health-indicator.js +2 -1
- package/package/bullmq/redis-health-indicator.js.map +1 -1
- package/package/bullmq/scripts/get-jobs-by-type.js +104 -104
- package/package/bullmq/types.d.ts +31 -1
- package/package.json +9 -5
package/LICENSE.md
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# License
|
|
2
|
-
Copyright (C) Vendure GmbH
|
|
3
|
-
|
|
4
|
-
This software is available under two different licenses:
|
|
5
|
-
* GNU General Public License version 3 (GPLv3) as Vendure Community Edition
|
|
6
|
-
* Vendure Commercial License (VCL)
|
|
7
|
-
|
|
8
|
-
The default Vendure license, without a valid Vendure Commercial License agreement, is the Open-Source GPLv3 license.
|
|
9
|
-
|
|
10
|
-
## GNU General Public License version 3 (GPLv3)
|
|
11
|
-
|
|
12
|
-
If you decide to choose the GPLv3 license, you must comply with the following terms:
|
|
13
|
-
|
|
14
|
-
This program is free software: you can redistribute it and/or modify
|
|
15
|
-
it under the terms of the GNU General Public License as published by
|
|
16
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
17
|
-
(at your option) any later version.
|
|
18
|
-
|
|
19
|
-
This program is distributed in the hope that it will be useful,
|
|
20
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
21
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
22
|
-
GNU General Public License for more details.
|
|
23
|
-
|
|
24
|
-
You should have received a copy of the GNU General Public License
|
|
25
|
-
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
26
|
-
|
|
27
|
-
Additional permission under GNU GPL version 3 section 7:
|
|
28
|
-
|
|
29
|
-
An additional exception under section 7 of the GPL is included in the plugin-exception.txt file,
|
|
30
|
-
which allows you to distribute Vendure plugins (i.e. extensions) under a different license.
|
|
31
|
-
|
|
32
|
-
## Vendure Commercial License (VCL)
|
|
33
|
-
|
|
34
|
-
Alternatively, commercial and supported versions of the program - also known as
|
|
35
|
-
Commercial Distributions - must be used in accordance with the terms and conditions
|
|
36
|
-
contained in a separate written agreement between you and Vendure GmbH.
|
|
37
|
-
For more information about the Vendure Commercial License (VCL) please contact contact@vendure.io.
|
|
38
|
-
|
|
39
|
-
Please see also:
|
|
40
|
-
|
|
41
|
-
- [Licensing FAQ - license-faq.md](license/license-faq.md)
|
|
42
|
-
- [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - gpl-3.0.txt](license/gpl-3.0.txt)
|
|
1
|
+
# License
|
|
2
|
+
Copyright (C) Vendure GmbH
|
|
3
|
+
|
|
4
|
+
This software is available under two different licenses:
|
|
5
|
+
* GNU General Public License version 3 (GPLv3) as Vendure Community Edition
|
|
6
|
+
* Vendure Commercial License (VCL)
|
|
7
|
+
|
|
8
|
+
The default Vendure license, without a valid Vendure Commercial License agreement, is the Open-Source GPLv3 license.
|
|
9
|
+
|
|
10
|
+
## GNU General Public License version 3 (GPLv3)
|
|
11
|
+
|
|
12
|
+
If you decide to choose the GPLv3 license, you must comply with the following terms:
|
|
13
|
+
|
|
14
|
+
This program is free software: you can redistribute it and/or modify
|
|
15
|
+
it under the terms of the GNU General Public License as published by
|
|
16
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
17
|
+
(at your option) any later version.
|
|
18
|
+
|
|
19
|
+
This program is distributed in the hope that it will be useful,
|
|
20
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
21
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
22
|
+
GNU General Public License for more details.
|
|
23
|
+
|
|
24
|
+
You should have received a copy of the GNU General Public License
|
|
25
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
26
|
+
|
|
27
|
+
Additional permission under GNU GPL version 3 section 7:
|
|
28
|
+
|
|
29
|
+
An additional exception under section 7 of the GPL is included in the plugin-exception.txt file,
|
|
30
|
+
which allows you to distribute Vendure plugins (i.e. extensions) under a different license.
|
|
31
|
+
|
|
32
|
+
## Vendure Commercial License (VCL)
|
|
33
|
+
|
|
34
|
+
Alternatively, commercial and supported versions of the program - also known as
|
|
35
|
+
Commercial Distributions - must be used in accordance with the terms and conditions
|
|
36
|
+
contained in a separate written agreement between you and Vendure GmbH.
|
|
37
|
+
For more information about the Vendure Commercial License (VCL) please contact contact@vendure.io.
|
|
38
|
+
|
|
39
|
+
Please see also:
|
|
40
|
+
|
|
41
|
+
- [Licensing FAQ - license-faq.md](license/license-faq.md)
|
|
42
|
+
- [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - gpl-3.0.txt](license/gpl-3.0.txt)
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Vendure Job Queue Plugin
|
|
2
|
-
|
|
3
|
-
This plugin includes alternate JobQueueStrategy implementations built on different technologies.
|
|
4
|
-
|
|
5
|
-
Implemented:
|
|
6
|
-
|
|
7
|
-
* The `PubSubPlugin` uses Google Cloud Pub/Sub to power the Vendure job queue.
|
|
8
|
-
* The `BullMQJobQueuePlugin` uses Redis via BullMQ.
|
|
1
|
+
# Vendure Job Queue Plugin
|
|
2
|
+
|
|
3
|
+
This plugin includes alternate JobQueueStrategy implementations built on different technologies.
|
|
4
|
+
|
|
5
|
+
Implemented:
|
|
6
|
+
|
|
7
|
+
* The `PubSubPlugin` uses Google Cloud Pub/Sub to power the Vendure job queue.
|
|
8
|
+
* The `BullMQJobQueuePlugin` uses Redis via BullMQ.
|
|
@@ -14,9 +14,9 @@ export declare class BullMQJobQueueStrategy implements InspectableJobQueueStrate
|
|
|
14
14
|
private worker;
|
|
15
15
|
private workerProcessor;
|
|
16
16
|
private options;
|
|
17
|
-
private queueNameProcessFnMap;
|
|
17
|
+
private readonly queueNameProcessFnMap;
|
|
18
18
|
private cancellationSub;
|
|
19
|
-
private cancelRunningJob$;
|
|
19
|
+
private readonly cancelRunningJob$;
|
|
20
20
|
private readonly CANCEL_JOB_CHANNEL;
|
|
21
21
|
private readonly CANCELLED_JOB_LIST_NAME;
|
|
22
22
|
init(injector: Injector): Promise<void>;
|
|
@@ -28,7 +28,7 @@ export declare class BullMQJobQueueStrategy implements InspectableJobQueueStrate
|
|
|
28
28
|
findOne(id: ID): Promise<Job | undefined>;
|
|
29
29
|
removeSettledJobs(queueNames?: string[], olderThan?: Date): Promise<number>;
|
|
30
30
|
start<Data extends JobData<Data> = object>(queueName: string, process: (job: Job<Data>) => Promise<any>): Promise<void>;
|
|
31
|
-
private subscribeToCancellationEvents;
|
|
31
|
+
private readonly subscribeToCancellationEvents;
|
|
32
32
|
private stopped;
|
|
33
33
|
stop<Data extends JobData<Data> = object>(queueName: string, process: (job: Job<Data>) => Promise<any>): Promise<void>;
|
|
34
34
|
private setActiveJobAsCancelled;
|
|
@@ -40,16 +40,9 @@ class BullMQJobQueueStrategy {
|
|
|
40
40
|
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
41
|
age: 60 * 60 * 24 * 30,
|
|
42
42
|
count: 5000,
|
|
43
|
-
}, removeOnFail: (_d = (_c = options.workerOptions) === null || _c === void 0 ? void 0 : _c.removeOnFail) !== null && _d !== void 0 ? _d : {
|
|
44
|
-
age: 60 * 60 * 24 * 30,
|
|
45
|
-
count: 5000,
|
|
46
|
-
} }) });
|
|
43
|
+
}, removeOnFail: (_d = (_c = options.workerOptions) === null || _c === void 0 ? void 0 : _c.removeOnFail) !== null && _d !== void 0 ? _d : { age: 60 * 60 * 24 * 30, count: 5000 } }) });
|
|
47
44
|
this.connectionOptions =
|
|
48
|
-
(_e = options.connection) !== null && _e !== void 0 ? _e : {
|
|
49
|
-
host: 'localhost',
|
|
50
|
-
port: 6379,
|
|
51
|
-
maxRetriesPerRequest: null,
|
|
52
|
-
};
|
|
45
|
+
(_e = options.connection) !== null && _e !== void 0 ? _e : { host: 'localhost', port: 6379, maxRetriesPerRequest: null };
|
|
53
46
|
this.redisConnection =
|
|
54
47
|
this.connectionOptions instanceof events_1.EventEmitter
|
|
55
48
|
? this.connectionOptions
|
|
@@ -114,16 +107,14 @@ class BullMQJobQueueStrategy {
|
|
|
114
107
|
await Promise.all([this.queue.close(), (_a = this.worker) === null || _a === void 0 ? void 0 : _a.close()]);
|
|
115
108
|
}
|
|
116
109
|
async add(job) {
|
|
117
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
110
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
118
111
|
const retries = (_d = (_c = (_b = (_a = this.options).setRetries) === null || _b === void 0 ? void 0 : _b.call(_a, job.queueName, job)) !== null && _c !== void 0 ? _c : job.retries) !== null && _d !== void 0 ? _d : 0;
|
|
119
112
|
const backoff = (_g = (_f = (_e = this.options).setBackoff) === null || _f === void 0 ? void 0 : _f.call(_e, job.queueName, job)) !== null && _g !== void 0 ? _g : {
|
|
120
113
|
delay: 1000,
|
|
121
114
|
type: 'exponential',
|
|
122
115
|
};
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
backoff,
|
|
126
|
-
});
|
|
116
|
+
const customJobOptions = (_k = (_j = (_h = this.options).setJobOptions) === null || _j === void 0 ? void 0 : _j.call(_h, job.queueName, job)) !== null && _k !== void 0 ? _k : {};
|
|
117
|
+
const bullJob = await this.queue.add(job.queueName, job.data, Object.assign({ attempts: typeof retries === 'number' ? retries + 1 : 1, backoff: typeof backoff === 'number' || 'type' in backoff ? backoff : undefined }, customJobOptions));
|
|
127
118
|
return this.createVendureJob(bullJob);
|
|
128
119
|
}
|
|
129
120
|
async cancelJob(jobId) {
|
|
@@ -156,7 +147,7 @@ class BullMQJobQueueStrategy {
|
|
|
156
147
|
if (stateFilter === null || stateFilter === void 0 ? void 0 : stateFilter.eq) {
|
|
157
148
|
switch (stateFilter.eq) {
|
|
158
149
|
case 'PENDING':
|
|
159
|
-
jobTypes = ['wait'];
|
|
150
|
+
jobTypes = ['wait', 'waiting-children', 'prioritized'];
|
|
160
151
|
break;
|
|
161
152
|
case 'RUNNING':
|
|
162
153
|
jobTypes = ['active'];
|
|
@@ -180,7 +171,7 @@ class BullMQJobQueueStrategy {
|
|
|
180
171
|
jobTypes =
|
|
181
172
|
settledFilter.eq === true
|
|
182
173
|
? ['completed', 'failed']
|
|
183
|
-
: ['wait', 'waiting-children', 'active', 'repeat', 'delayed', 'paused'];
|
|
174
|
+
: ['wait', 'waiting-children', 'active', 'repeat', 'delayed', 'paused', 'prioritized'];
|
|
184
175
|
}
|
|
185
176
|
let items = [];
|
|
186
177
|
let totalItems = 0;
|
|
@@ -199,10 +190,7 @@ class BullMQJobQueueStrategy {
|
|
|
199
190
|
catch (e) {
|
|
200
191
|
throw new core_1.InternalServerError(e.message);
|
|
201
192
|
}
|
|
202
|
-
return {
|
|
203
|
-
items: await Promise.all(items.map(bullJob => this.createVendureJob(bullJob))),
|
|
204
|
-
totalItems,
|
|
205
|
-
};
|
|
193
|
+
return { items: await Promise.all(items.map(bullJob => this.createVendureJob(bullJob))), totalItems };
|
|
206
194
|
}
|
|
207
195
|
async findManyById(ids) {
|
|
208
196
|
const bullJobs = await Promise.all(ids.map(id => this.queue.getJob(id.toString())));
|
|
@@ -262,10 +250,14 @@ class BullMQJobQueueStrategy {
|
|
|
262
250
|
if (0 < activeCount) {
|
|
263
251
|
const activeJobs = await this.queue.getActive();
|
|
264
252
|
core_1.Logger.info(`Waiting on ${activeCount} active ${activeCount > 1 ? 'jobs' : 'job'} (${activeJobs.map(j => j.id).join(', ')})...`, constants_1.loggerCtx);
|
|
265
|
-
timer = setTimeout(
|
|
253
|
+
timer = setTimeout(() => {
|
|
254
|
+
void checkActive();
|
|
255
|
+
}, 2000);
|
|
266
256
|
}
|
|
267
257
|
};
|
|
268
|
-
timer = setTimeout(
|
|
258
|
+
timer = setTimeout(() => {
|
|
259
|
+
void checkActive();
|
|
260
|
+
}, 2000);
|
|
269
261
|
await this.worker.close();
|
|
270
262
|
core_1.Logger.info(`Worker closed`, constants_1.loggerCtx);
|
|
271
263
|
await this.queue.close();
|
|
@@ -305,33 +297,32 @@ class BullMQJobQueueStrategy {
|
|
|
305
297
|
async getState(bullJob) {
|
|
306
298
|
var _a;
|
|
307
299
|
const jobId = (_a = bullJob.id) === null || _a === void 0 ? void 0 : _a.toString();
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
300
|
+
const state = await bullJob.getState();
|
|
301
|
+
switch (state) {
|
|
302
|
+
case 'completed':
|
|
303
|
+
return generated_types_1.JobState.COMPLETED;
|
|
304
|
+
case 'failed':
|
|
305
|
+
return generated_types_1.JobState.FAILED;
|
|
306
|
+
case 'waiting':
|
|
307
|
+
case 'waiting-children':
|
|
308
|
+
case 'prioritized':
|
|
309
|
+
return generated_types_1.JobState.PENDING;
|
|
310
|
+
case 'delayed':
|
|
311
|
+
return generated_types_1.JobState.RETRYING;
|
|
312
|
+
case 'active': {
|
|
313
|
+
const isCancelled = jobId && (await this.redisConnection.sismember(this.CANCELLED_JOB_LIST_NAME, jobId));
|
|
314
|
+
return isCancelled ? generated_types_1.JobState.CANCELLED : generated_types_1.JobState.RUNNING;
|
|
315
315
|
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
}
|
|
320
|
-
if (await bullJob.isDelayed()) {
|
|
321
|
-
return generated_types_1.JobState.RETRYING;
|
|
322
|
-
}
|
|
323
|
-
if (await bullJob.isFailed()) {
|
|
324
|
-
return generated_types_1.JobState.FAILED;
|
|
325
|
-
}
|
|
326
|
-
if (await bullJob.isCompleted()) {
|
|
327
|
-
return generated_types_1.JobState.COMPLETED;
|
|
316
|
+
case 'unknown':
|
|
317
|
+
default:
|
|
318
|
+
throw new core_1.InternalServerError(`Could not determine job state: ${state}`);
|
|
328
319
|
}
|
|
329
|
-
throw new core_1.InternalServerError('Could not determine job state');
|
|
330
|
-
// TODO: how to handle "cancelled" state? Currently when we cancel a job, we simply remove all record of it.
|
|
331
320
|
}
|
|
332
321
|
callCustomScript(scriptDef, args) {
|
|
333
322
|
return new Promise((resolve, reject) => {
|
|
334
|
-
|
|
323
|
+
var _a, _b;
|
|
324
|
+
const prefix = (_b = (_a = this.options.workerOptions) === null || _a === void 0 ? void 0 : _a.prefix) !== null && _b !== void 0 ? _b : 'bull';
|
|
325
|
+
this.redisConnection[scriptDef.name](`${prefix}:${this.queue.name}:`, ...args, (err, result) => {
|
|
335
326
|
if (err) {
|
|
336
327
|
reject(err);
|
|
337
328
|
}
|
|
@@ -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,2CAA8E;AAC9E,qEAAgE;AAChE,iEAA2D;AAG3D,MAAM,UAAU,GAAG,mBAAmB,CAAC;AACvC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;;GAMG;AACH,MAAa,sBAAsB;IAAnC;QAOqB,0BAAqB,GAAG,IAAI,GAAG,EAAsC,CAAC;QAEtE,sBAAiB,GAAG,IAAI,cAAO,EAAU,CAAC;QAC1C,uBAAkB,GAAG,YAAY,CAAC;QAClC,4BAAuB,GAAG,wBAAwB,CAAC;QAyPnD,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;IAtXG,KAAK,CAAC,IAAI,CAAC,QAAkB;;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAsB,iCAAqB,CAAC,CAAC;QACzE,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,UAAU,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;IAC7E,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,mBAAmB,IAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,KAC7B,UAAU,EAAE,IAAI,CAAC,eAAe,GACnC,CAAC;YACF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,UAAU,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,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,0CAAE,MAAM,mCAAI,MAAM,CAAC;YAC3D,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;AAnYD,wDAmYC"}
|
|
@@ -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;AAExD,QAAA,aAAa,GAAc;IACpC,WAAW;IACX,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,kBAAkB;IAClB,QAAQ;IACR,MAAM;IACN,QAAQ;
|
|
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;AAExD,QAAA,aAAa,GAAc;IACpC,WAAW;IACX,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,kBAAkB;IAClB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,aAAa;CAChB,CAAC"}
|
|
@@ -121,6 +121,62 @@ import { BullMQPluginOptions } from './types';
|
|
|
121
121
|
* maximum age of a job in seconds. If both options are specified, then the jobs kept will be the ones that satisfy
|
|
122
122
|
* both properties.
|
|
123
123
|
*
|
|
124
|
+
* ## Job Priority
|
|
125
|
+
* Some jobs are more important than others. For example, sending out a timely email after a customer places an order
|
|
126
|
+
* is probably more important than a routine data import task. Sometimes you can get the situation where lower-priority
|
|
127
|
+
* jobs are blocking higher-priority jobs.
|
|
128
|
+
*
|
|
129
|
+
* Let's say you have a data import job that runs periodically and takes a long time to complete. If you have a high-priority
|
|
130
|
+
* job that needs to be processed quickly, it could be stuck behind the data import job in the queue. A customer might
|
|
131
|
+
* not get their confirmation email for 30 minutes while that data import job is processed!
|
|
132
|
+
*
|
|
133
|
+
* To solve this problem, you can set the `priority` option on a job. Jobs with a higher priority will be processed before
|
|
134
|
+
* jobs with a lower priority. By default, all jobs have a priority of 0 (which is the highest).
|
|
135
|
+
*
|
|
136
|
+
* Learn more about how priority works in BullMQ in their [documentation](https://docs.bullmq.io/guide/jobs/prioritized).
|
|
137
|
+
*
|
|
138
|
+
* You can set the priority by using the `setJobOptions` option (introduced in Vendure v3.2.0):
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* const config: VendureConfig = {
|
|
143
|
+
* plugins: [
|
|
144
|
+
* BullMQJobQueuePlugin.init({
|
|
145
|
+
* setJobOptions: (queueName, job) => {
|
|
146
|
+
* let priority = 10;
|
|
147
|
+
* switch (queueName) {
|
|
148
|
+
* case 'super-critical-task':
|
|
149
|
+
* priority = 0;
|
|
150
|
+
* break;
|
|
151
|
+
* case 'send-email':
|
|
152
|
+
* priority = 5;
|
|
153
|
+
* break;
|
|
154
|
+
* default:
|
|
155
|
+
* priority = 10;
|
|
156
|
+
* }
|
|
157
|
+
* return { priority };
|
|
158
|
+
* }
|
|
159
|
+
* }),
|
|
160
|
+
* ],
|
|
161
|
+
* };
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* ## Setting Redis Prefix
|
|
165
|
+
*
|
|
166
|
+
* By default, the underlying BullMQ library will use the default Redis key prefix of `bull`. This can be changed by setting the `prefix` option
|
|
167
|
+
* in the `queueOptions` and `workerOptions` objects:
|
|
168
|
+
*
|
|
169
|
+
* ```ts
|
|
170
|
+
* BullMQJobQueuePlugin.init({
|
|
171
|
+
* workerOptions: {
|
|
172
|
+
* prefix: 'my-prefix'
|
|
173
|
+
* },
|
|
174
|
+
* queueOptions: {
|
|
175
|
+
* prefix: 'my-prefix'
|
|
176
|
+
* }
|
|
177
|
+
* }),
|
|
178
|
+
* ```
|
|
179
|
+
*
|
|
124
180
|
* @docsCategory core plugins/JobQueuePlugin
|
|
125
181
|
*/
|
|
126
182
|
export declare class BullMQJobQueuePlugin {
|
package/package/bullmq/plugin.js
CHANGED
|
@@ -135,6 +135,62 @@ const redis_job_buffer_storage_strategy_1 = require("./redis-job-buffer-storage-
|
|
|
135
135
|
* maximum age of a job in seconds. If both options are specified, then the jobs kept will be the ones that satisfy
|
|
136
136
|
* both properties.
|
|
137
137
|
*
|
|
138
|
+
* ## Job Priority
|
|
139
|
+
* Some jobs are more important than others. For example, sending out a timely email after a customer places an order
|
|
140
|
+
* is probably more important than a routine data import task. Sometimes you can get the situation where lower-priority
|
|
141
|
+
* jobs are blocking higher-priority jobs.
|
|
142
|
+
*
|
|
143
|
+
* Let's say you have a data import job that runs periodically and takes a long time to complete. If you have a high-priority
|
|
144
|
+
* job that needs to be processed quickly, it could be stuck behind the data import job in the queue. A customer might
|
|
145
|
+
* not get their confirmation email for 30 minutes while that data import job is processed!
|
|
146
|
+
*
|
|
147
|
+
* To solve this problem, you can set the `priority` option on a job. Jobs with a higher priority will be processed before
|
|
148
|
+
* jobs with a lower priority. By default, all jobs have a priority of 0 (which is the highest).
|
|
149
|
+
*
|
|
150
|
+
* Learn more about how priority works in BullMQ in their [documentation](https://docs.bullmq.io/guide/jobs/prioritized).
|
|
151
|
+
*
|
|
152
|
+
* You can set the priority by using the `setJobOptions` option (introduced in Vendure v3.2.0):
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```ts
|
|
156
|
+
* const config: VendureConfig = {
|
|
157
|
+
* plugins: [
|
|
158
|
+
* BullMQJobQueuePlugin.init({
|
|
159
|
+
* setJobOptions: (queueName, job) => {
|
|
160
|
+
* let priority = 10;
|
|
161
|
+
* switch (queueName) {
|
|
162
|
+
* case 'super-critical-task':
|
|
163
|
+
* priority = 0;
|
|
164
|
+
* break;
|
|
165
|
+
* case 'send-email':
|
|
166
|
+
* priority = 5;
|
|
167
|
+
* break;
|
|
168
|
+
* default:
|
|
169
|
+
* priority = 10;
|
|
170
|
+
* }
|
|
171
|
+
* return { priority };
|
|
172
|
+
* }
|
|
173
|
+
* }),
|
|
174
|
+
* ],
|
|
175
|
+
* };
|
|
176
|
+
* ```
|
|
177
|
+
*
|
|
178
|
+
* ## Setting Redis Prefix
|
|
179
|
+
*
|
|
180
|
+
* By default, the underlying BullMQ library will use the default Redis key prefix of `bull`. This can be changed by setting the `prefix` option
|
|
181
|
+
* in the `queueOptions` and `workerOptions` objects:
|
|
182
|
+
*
|
|
183
|
+
* ```ts
|
|
184
|
+
* BullMQJobQueuePlugin.init({
|
|
185
|
+
* workerOptions: {
|
|
186
|
+
* prefix: 'my-prefix'
|
|
187
|
+
* },
|
|
188
|
+
* queueOptions: {
|
|
189
|
+
* prefix: 'my-prefix'
|
|
190
|
+
* }
|
|
191
|
+
* }),
|
|
192
|
+
* ```
|
|
193
|
+
*
|
|
138
194
|
* @docsCategory core plugins/JobQueuePlugin
|
|
139
195
|
*/
|
|
140
196
|
let BullMQJobQueuePlugin = class BullMQJobQueuePlugin {
|
|
@@ -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
|
|
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;AAeI,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;IAdhC,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,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;SACvB;QACD,aAAa,EAAE,QAAQ;KAC1B,CAAC;GACW,oBAAoB,CAWhC"}
|
|
@@ -24,7 +24,8 @@ let RedisHealthIndicator = class RedisHealthIndicator extends terminus_1.HealthI
|
|
|
24
24
|
this.options = options;
|
|
25
25
|
}
|
|
26
26
|
async isHealthy(key, timeoutMs = 5000) {
|
|
27
|
-
|
|
27
|
+
var _a;
|
|
28
|
+
const connection = new bullmq_1.RedisConnection((_a = this.options.connection) !== null && _a !== void 0 ? _a : {});
|
|
28
29
|
const pingResult = await new Promise(async (resolve, reject) => {
|
|
29
30
|
try {
|
|
30
31
|
connection.on('error', err => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-health-indicator.js","sourceRoot":"","sources":["../../src/bullmq/redis-health-indicator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+CAA4F;AAC5F,wCAAuC;AACvC,mCAAyC;
|
|
1
|
+
{"version":3,"file":"redis-health-indicator.js","sourceRoot":"","sources":["../../src/bullmq/redis-health-indicator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,+CAA4F;AAC5F,wCAAuC;AACvC,mCAAyC;AAEzC,2CAA+D;AAIxD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,0BAAe;IAErD,YAAmD,OAA4B;QAC3E,KAAK,EAAE,CAAC;QADuC,YAAO,GAAP,OAAO,CAAqB;IAE/E,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,SAAS,GAAG,IAAI;;QACzC,MAAM,UAAU,GAAG,IAAI,wBAAe,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,IAAI,CAAC;gBACD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;oBACzB,aAAM,CAAC,KAAK,CACR,6BAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAC1D,qBAAS,EACT,GAAG,CAAC,KAAK,CACZ,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,OAAO,CACvB,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CACpE,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAChE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnB,OAAO;gBACX,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,GAAQ,EAAE,EAAE;oBACpC,IAAI,GAAG,EAAE,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACJ,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjB,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,iCAAiC;QACrC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,aAAM,CAAC,KAAK,CACR,gDAAgD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAC3E,qBAAS,EACT,CAAC,CAAC,KAAK,CACV,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,CAAC,CAAC;QAE1D,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,2BAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACJ,CAAA;AA3DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAGI,WAAA,IAAA,eAAM,EAAC,iCAAqB,CAAC,CAAA;;GAFjC,oBAAoB,CA2DhC"}
|
|
@@ -1,110 +1,110 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getJobsByType = void 0;
|
|
4
|
-
const script = `--[[
|
|
5
|
-
Get job ids per provided states and filter by name
|
|
6
|
-
Input:
|
|
7
|
-
KEYS[1] 'prefix'
|
|
8
|
-
ARGV[1] start
|
|
9
|
-
ARGV[2] end
|
|
10
|
-
ARGV[3] filterName
|
|
11
|
-
ARGV[4...] types
|
|
12
|
-
]]
|
|
13
|
-
local rcall = redis.call
|
|
14
|
-
local prefix = KEYS[1]
|
|
15
|
-
local rangeStart = tonumber(ARGV[1])
|
|
16
|
-
local rangeEnd = tonumber(ARGV[2])
|
|
17
|
-
local filterName = ARGV[3]
|
|
18
|
-
local results = {}
|
|
19
|
-
|
|
20
|
-
local targetSets = {}
|
|
21
|
-
|
|
22
|
-
-- Initialize an empty array to hold the sets to unionize. The "completed" and "failed" lists
|
|
23
|
-
-- are sorted sets
|
|
24
|
-
local setsToUnionize = {}
|
|
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
|
|
51
|
-
|
|
52
|
-
-- Define the destination key for the concatenated sorted set
|
|
53
|
-
local tempSortedSetUnionKey = prefix .. 'union:' .. table.concat(typesInUnion, ':');
|
|
54
|
-
|
|
55
|
-
if #listsToInclude == 0 and #setsToUnionize == 0 then
|
|
56
|
-
return {0, {}}
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
-- Check if there are valid sets to unionize
|
|
60
|
-
if #setsToUnionize > 0 then
|
|
61
|
-
-- Use ZUNIONSTORE to concatenate the valid sorted sets into the destination key
|
|
62
|
-
local numSets = #setsToUnionize
|
|
63
|
-
redis.call('ZUNIONSTORE', tempSortedSetUnionKey, numSets, unpack(setsToUnionize))
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
local originalResults = rcall("ZREVRANGE", tempSortedSetUnionKey, 0, -1)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if #listsToInclude > 0 then
|
|
70
|
-
for _, listKey in ipairs(listsToInclude) do
|
|
71
|
-
local list = rcall("LRANGE", listKey, 0, -1)
|
|
72
|
-
for _, jobId in ipairs(list) do
|
|
73
|
-
table.insert(originalResults, jobId)
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
-- Define a custom comparison function for sorting in descending order
|
|
80
|
-
local function compareDescending(a, b)
|
|
81
|
-
return tonumber(a) > tonumber(b)
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
-- Sort the table in descending order
|
|
85
|
-
table.sort(originalResults, compareDescending)
|
|
86
|
-
|
|
87
|
-
local filteredResults = {}
|
|
88
|
-
local totalResults = 0
|
|
89
|
-
|
|
90
|
-
for _, job in ipairs(originalResults) do
|
|
91
|
-
local jobName = rcall("HGET", prefix .. job, "name");
|
|
92
|
-
if filterName ~= "" and jobName == filterName then
|
|
93
|
-
if rangeStart <= totalResults and #filteredResults < rangeEnd then
|
|
94
|
-
table.insert(filteredResults, job)
|
|
95
|
-
end
|
|
96
|
-
totalResults = totalResults + 1
|
|
97
|
-
elseif filterName == "" then
|
|
98
|
-
if rangeStart <= totalResults and #filteredResults < rangeEnd then
|
|
99
|
-
table.insert(filteredResults, job)
|
|
100
|
-
end
|
|
101
|
-
totalResults = totalResults + 1
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
rcall("DEL", tempSortedSetUnionKey)
|
|
106
|
-
|
|
107
|
-
return {totalResults, filteredResults}
|
|
4
|
+
const script = `--[[
|
|
5
|
+
Get job ids per provided states and filter by name
|
|
6
|
+
Input:
|
|
7
|
+
KEYS[1] 'prefix'
|
|
8
|
+
ARGV[1] start
|
|
9
|
+
ARGV[2] end
|
|
10
|
+
ARGV[3] filterName
|
|
11
|
+
ARGV[4...] types
|
|
12
|
+
]]
|
|
13
|
+
local rcall = redis.call
|
|
14
|
+
local prefix = KEYS[1]
|
|
15
|
+
local rangeStart = tonumber(ARGV[1])
|
|
16
|
+
local rangeEnd = tonumber(ARGV[2])
|
|
17
|
+
local filterName = ARGV[3]
|
|
18
|
+
local results = {}
|
|
19
|
+
|
|
20
|
+
local targetSets = {}
|
|
21
|
+
|
|
22
|
+
-- Initialize an empty array to hold the sets to unionize. The "completed" and "failed" lists
|
|
23
|
+
-- are sorted sets
|
|
24
|
+
local setsToUnionize = {}
|
|
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
|
|
51
|
+
|
|
52
|
+
-- Define the destination key for the concatenated sorted set
|
|
53
|
+
local tempSortedSetUnionKey = prefix .. 'union:' .. table.concat(typesInUnion, ':');
|
|
54
|
+
|
|
55
|
+
if #listsToInclude == 0 and #setsToUnionize == 0 then
|
|
56
|
+
return {0, {}}
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
-- Check if there are valid sets to unionize
|
|
60
|
+
if #setsToUnionize > 0 then
|
|
61
|
+
-- Use ZUNIONSTORE to concatenate the valid sorted sets into the destination key
|
|
62
|
+
local numSets = #setsToUnionize
|
|
63
|
+
redis.call('ZUNIONSTORE', tempSortedSetUnionKey, numSets, unpack(setsToUnionize))
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
local originalResults = rcall("ZREVRANGE", tempSortedSetUnionKey, 0, -1)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
if #listsToInclude > 0 then
|
|
70
|
+
for _, listKey in ipairs(listsToInclude) do
|
|
71
|
+
local list = rcall("LRANGE", listKey, 0, -1)
|
|
72
|
+
for _, jobId in ipairs(list) do
|
|
73
|
+
table.insert(originalResults, jobId)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
-- Define a custom comparison function for sorting in descending order
|
|
80
|
+
local function compareDescending(a, b)
|
|
81
|
+
return tonumber(a) > tonumber(b)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
-- Sort the table in descending order
|
|
85
|
+
table.sort(originalResults, compareDescending)
|
|
86
|
+
|
|
87
|
+
local filteredResults = {}
|
|
88
|
+
local totalResults = 0
|
|
89
|
+
|
|
90
|
+
for _, job in ipairs(originalResults) do
|
|
91
|
+
local jobName = rcall("HGET", prefix .. job, "name");
|
|
92
|
+
if filterName ~= "" and jobName == filterName then
|
|
93
|
+
if rangeStart <= totalResults and #filteredResults < rangeEnd then
|
|
94
|
+
table.insert(filteredResults, job)
|
|
95
|
+
end
|
|
96
|
+
totalResults = totalResults + 1
|
|
97
|
+
elseif filterName == "" then
|
|
98
|
+
if rangeStart <= totalResults and #filteredResults < rangeEnd then
|
|
99
|
+
table.insert(filteredResults, job)
|
|
100
|
+
end
|
|
101
|
+
totalResults = totalResults + 1
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
rcall("DEL", tempSortedSetUnionKey)
|
|
106
|
+
|
|
107
|
+
return {totalResults, filteredResults}
|
|
108
108
|
`;
|
|
109
109
|
exports.getJobsByType = {
|
|
110
110
|
script,
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { Job } from '@vendure/core';
|
|
2
|
-
import { ConnectionOptions, WorkerOptions } from 'bullmq';
|
|
2
|
+
import { ConnectionOptions, WorkerOptions, Queue } from 'bullmq';
|
|
3
3
|
import { QueueOptions } from 'bullmq';
|
|
4
|
+
/**
|
|
5
|
+
* @description
|
|
6
|
+
* This type is the third parameter to the `Queue.add()` method,
|
|
7
|
+
* which allows additional options to be specified for the job.
|
|
8
|
+
*/
|
|
9
|
+
export type BullJobsOptions = Parameters<Queue['add']>[2];
|
|
4
10
|
/**
|
|
5
11
|
* @description
|
|
6
12
|
* Configuration options for the {@link BullMQJobQueuePlugin}.
|
|
@@ -53,6 +59,7 @@ export interface BullMQPluginOptions {
|
|
|
53
59
|
* }
|
|
54
60
|
* ```
|
|
55
61
|
*
|
|
62
|
+
* @deprecated Use `setJobOptions` instead.
|
|
56
63
|
* @since 1.3.0
|
|
57
64
|
*/
|
|
58
65
|
setRetries?: (queueName: string, job: Job) => number;
|
|
@@ -72,10 +79,33 @@ export interface BullMQPluginOptions {
|
|
|
72
79
|
* };
|
|
73
80
|
* }
|
|
74
81
|
* ```
|
|
82
|
+
*
|
|
83
|
+
* @deprecated Use `setJobOptions` instead.
|
|
75
84
|
* @since 1.3.0
|
|
76
85
|
* @default 'exponential', 1000
|
|
77
86
|
*/
|
|
78
87
|
setBackoff?: (queueName: string, job: Job) => BackoffOptions | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* @description
|
|
90
|
+
* This allows you to specify additional options for a job when it is added to the queue.
|
|
91
|
+
* The object returned is the BullMQ [JobsOptions](https://api.docs.bullmq.io/types/v5.JobsOptions.html)
|
|
92
|
+
* type, which includes control over settings such as `delay`, `attempts`, `priority` and much more.
|
|
93
|
+
*
|
|
94
|
+
* This function is called every time a job is added to the queue, so you can return different options
|
|
95
|
+
* based on the job being added.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```ts
|
|
99
|
+
* // Here we want to assign a higher priority to jobs in the 'critical' queue
|
|
100
|
+
* setJobOptions: (queueName, job) => {
|
|
101
|
+
* const priority = queueName === 'critical' ? 1 : 5;
|
|
102
|
+
* return { priority };
|
|
103
|
+
* }
|
|
104
|
+
* ```
|
|
105
|
+
*
|
|
106
|
+
* @since 3.2.0
|
|
107
|
+
*/
|
|
108
|
+
setJobOptions?: (queueName: string, job: Job) => BullJobsOptions;
|
|
79
109
|
}
|
|
80
110
|
/**
|
|
81
111
|
* @description
|
package/package.json
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vendure/job-queue-plugin",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"license": "GPL-3.0-or-later",
|
|
5
5
|
"main": "package/index.js",
|
|
6
6
|
"types": "package/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"package/**/*"
|
|
9
9
|
],
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/vendure-ecommerce/vendure"
|
|
13
|
+
},
|
|
10
14
|
"private": false,
|
|
11
15
|
"scripts": {
|
|
12
16
|
"watch": "tsc -p ./tsconfig.build.json --watch",
|
|
@@ -23,12 +27,12 @@
|
|
|
23
27
|
},
|
|
24
28
|
"devDependencies": {
|
|
25
29
|
"@google-cloud/pubsub": "^2.8.0",
|
|
26
|
-
"@vendure/common": "^3.1
|
|
27
|
-
"@vendure/core": "^3.1
|
|
30
|
+
"@vendure/common": "^3.2.1",
|
|
31
|
+
"@vendure/core": "^3.2.1",
|
|
28
32
|
"bullmq": "^5.4.2",
|
|
29
33
|
"ioredis": "^5.3.2",
|
|
30
34
|
"rimraf": "^5.0.5",
|
|
31
|
-
"typescript": "5.
|
|
35
|
+
"typescript": "5.8.2"
|
|
32
36
|
},
|
|
33
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "d86ca35d52e64990f5cb17dad476c6315a2e548c"
|
|
34
38
|
}
|