@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 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 bullJob = await this.queue.add(job.queueName, job.data, {
124
- attempts: retries + 1,
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(checkActive, 2000);
253
+ timer = setTimeout(() => {
254
+ void checkActive();
255
+ }, 2000);
266
256
  }
267
257
  };
268
- timer = setTimeout(checkActive, 2000);
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
- if ((await bullJob.isWaiting()) || (await bullJob.isWaitingChildren())) {
309
- return generated_types_1.JobState.PENDING;
310
- }
311
- if (await bullJob.isActive()) {
312
- const isCancelled = jobId && (await this.redisConnection.sismember(this.CANCELLED_JOB_LIST_NAME, jobId));
313
- if (isCancelled) {
314
- return generated_types_1.JobState.CANCELLED;
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
- else {
317
- return generated_types_1.JobState.RUNNING;
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
- this.redisConnection[scriptDef.name](`bull:${this.queue.name}:`, ...args, (err, result) => {
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":"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"}
@@ -12,5 +12,6 @@ exports.ALL_JOB_TYPES = [
12
12
  'active',
13
13
  'wait',
14
14
  'paused',
15
+ 'prioritized',
15
16
  ];
16
17
  //# sourceMappingURL=constants.js.map
@@ -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;CACX,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;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 {
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2HG;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"}
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
- const connection = new bullmq_1.RedisConnection(this.options.connection);
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;AAGzC,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,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChE,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
+ {"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.8",
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.8",
27
- "@vendure/core": "^3.1.8",
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.3.3"
35
+ "typescript": "5.8.2"
32
36
  },
33
- "gitHead": "1529b6fb6ffd18910b0d1c4117575445acd9d7b1"
37
+ "gitHead": "d86ca35d52e64990f5cb17dad476c6315a2e548c"
34
38
  }