@shrub/queue-bullmq 0.5.56 → 0.5.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { IModule, IModuleConfigurator, IModuleInitializer } from "@shrub/core";
2
- import { LoggingModule } from "@shrub/logging";
3
- import { QueueModule } from "@shrub/queue";
2
+ import { ILogger, LoggingModule } from "@shrub/logging";
3
+ import { IQueue, QueueAdapter, QueueModule } from "@shrub/queue";
4
4
  import { ConnectionOptions } from "bullmq";
5
5
  export { ConnectionOptions };
6
6
  export interface IQueueBullMQConfiguration {
@@ -24,3 +24,10 @@ export declare class QueueBullMQModule implements IModule {
24
24
  initialize(init: IModuleInitializer): void;
25
25
  configure({ config, next }: IModuleConfigurator): Promise<void>;
26
26
  }
27
+ export declare class QueueBullMQAdapter extends QueueAdapter {
28
+ private readonly logger;
29
+ private readonly connection?;
30
+ constructor(logger: ILogger, connection?: ConnectionOptions | undefined, queueNamePatterns?: string[], queueSchedulers?: string[]);
31
+ protected getQueueInstance(name: string): IQueue;
32
+ private initializeSchedulers;
33
+ }
package/dist/module.js CHANGED
@@ -1,24 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueueBullMQModule = exports.IQueueBullMQConfiguration = void 0;
3
+ exports.QueueBullMQAdapter = exports.QueueBullMQModule = exports.IQueueBullMQConfiguration = void 0;
4
4
  const core_1 = require("@shrub/core");
5
5
  const logging_1 = require("@shrub/logging");
6
6
  const queue_1 = require("@shrub/queue");
7
7
  const event_emitter_1 = require("@sprig/event-emitter");
8
8
  const bullmq_1 = require("bullmq");
9
- function convertJob(job) {
10
- return {
11
- id: job.id || "",
12
- name: job.name,
13
- data: job.data,
14
- get progress() {
15
- return job.progress;
16
- },
17
- updateProgress(progress) {
18
- return job.updateProgress(progress);
19
- }
20
- };
21
- }
22
9
  exports.IQueueBullMQConfiguration = core_1.createConfig();
23
10
  class QueueBullMQModule {
24
11
  constructor() {
@@ -31,7 +18,7 @@ class QueueBullMQModule {
31
18
  }
32
19
  initialize(init) {
33
20
  init.config(exports.IQueueBullMQConfiguration).register(({ services }) => ({
34
- useQueue: options => this.adapters.push(new BullMQQueueAdapter(services.get(logging_1.ILogger), options && options.connection, options && options.queueNamePatterns, options && options.queueSchedulers))
21
+ useQueue: options => this.adapters.push(new QueueBullMQAdapter(services.get(logging_1.ILogger), options && options.connection, options && options.queueNamePatterns, options && options.queueSchedulers))
35
22
  }));
36
23
  }
37
24
  async configure({ config, next }) {
@@ -41,7 +28,7 @@ class QueueBullMQModule {
41
28
  }
42
29
  }
43
30
  exports.QueueBullMQModule = QueueBullMQModule;
44
- class BullMQQueueAdapter extends queue_1.QueueAdapter {
31
+ class QueueBullMQAdapter extends queue_1.QueueAdapter {
45
32
  constructor(logger, connection, queueNamePatterns, queueSchedulers) {
46
33
  super(queueNamePatterns || ["*"]);
47
34
  this.logger = logger;
@@ -56,29 +43,15 @@ class BullMQQueueAdapter extends queue_1.QueueAdapter {
56
43
  queueSchedulers.forEach(name => new bullmq_1.QueueScheduler(name, { connection: this.connection }));
57
44
  }
58
45
  }
46
+ exports.QueueBullMQAdapter = QueueBullMQAdapter;
59
47
  class BullMQWrapper {
60
48
  constructor(logger, queueName, connection) {
61
49
  this.logger = logger;
62
50
  this.queueName = queueName;
63
51
  this.connection = connection;
64
- this.jobActive = new QueueEventEmitter();
65
- this.jobCompleted = new QueueEventEmitter();
66
- this.jobFailed = new QueueEventEmitter();
67
- this.jobProgress = new QueueEventEmitter();
68
52
  this.workers = new Map();
69
53
  this.workerId = 1;
70
- }
71
- get onJobActive() {
72
- return this.jobActive.event;
73
- }
74
- get onJobCompleted() {
75
- return this.jobCompleted.event;
76
- }
77
- get onJobFailed() {
78
- return this.jobFailed.event;
79
- }
80
- get onJobProgress() {
81
- return this.jobProgress.event;
54
+ this.events = new QueueEventsReference(queueName, connection);
82
55
  }
83
56
  add(options) {
84
57
  const jobOptions = {
@@ -89,7 +62,7 @@ class BullMQWrapper {
89
62
  }
90
63
  };
91
64
  this.instance = this.instance || new bullmq_1.Queue(this.queueName, { connection: this.connection });
92
- return this.instance.add(options.name || "", options.data || {}, jobOptions).then(job => convertJob(job));
65
+ return this.instance.add(options.name || "", options.data || {}, jobOptions).then(job => this.convertJob(job));
93
66
  }
94
67
  async close() {
95
68
  const promises = Array.from(this.workers.values()).map(worker => worker.close());
@@ -102,32 +75,32 @@ class BullMQWrapper {
102
75
  }
103
76
  createWorker(optionsOrCallback) {
104
77
  const options = this.getWorkerOptions(optionsOrCallback);
105
- const worker = new bullmq_1.Worker(this.queueName, job => options.callback(convertJob(job)), {
78
+ const worker = new bullmq_1.Worker(this.queueName, job => options.callback(this.convertJob(job)), {
106
79
  concurrency: options.concurrency,
107
80
  connection: this.connection
108
81
  });
82
+ const jobActive = new WorkerEventEmitter(worker, "active", job => ({ job: this.convertJob(job) }));
83
+ const jobCompleted = new WorkerEventEmitter(worker, "completed", (job, returnValue) => ({ job: this.convertJob(job), returnValue }));
84
+ const jobFailed = new WorkerEventEmitter(worker, "failed", (job, error) => ({ job: this.convertJob(job), error }));
85
+ const jobProgress = new WorkerEventEmitter(worker, "progress", (job, progress) => ({ job: this.convertJob(job), progress }));
109
86
  // BullMQ recommends attaching to 'error' and since we don't get job info pass the error to the logger
110
87
  // https://docs.bullmq.io/guide/workers
111
88
  worker.on("error", error => this.logger.logError(error));
112
- worker.on("active", job => {
113
- this.logger.logDebug({ name: "BullMQ - job active", queueName: job.queueName, job: job.id });
114
- this.jobActive.tryEmit(() => ({ job: convertJob(job) }));
115
- });
116
- worker.on("completed", (job, returnValue) => {
117
- this.logger.logDebug({ name: "BullMQ - job completed", queueName: job.queueName, job: job.id });
118
- this.jobCompleted.tryEmit(() => ({ job: convertJob(job), returnValue }));
119
- });
120
- worker.on("failed", (job, error) => {
121
- this.logger.logWarn({ name: "BullMQ - job failed", queueName: job.queueName, job: job.id, message: error.message, stack: error.stack });
122
- this.jobFailed.tryEmit(() => ({ job: convertJob(job), error }));
123
- });
124
- worker.on("progress", (job, progress) => {
125
- this.logger.logDebug({ name: "BullMQ - job progress", queueName: job.queueName, job: job.id, progress: typeof progress === "number" ? progress : JSON.stringify(progress) });
126
- this.jobProgress.tryEmit(() => ({ job: convertJob(job), progress }));
127
- });
128
89
  const id = this.workerId++;
129
90
  this.workers.set(id, worker);
130
91
  return {
92
+ get onJobActive() {
93
+ return jobActive.event;
94
+ },
95
+ get onJobCompleted() {
96
+ return jobCompleted.event;
97
+ },
98
+ get onJobFailed() {
99
+ return jobFailed.event;
100
+ },
101
+ get onJobProgress() {
102
+ return jobProgress.event;
103
+ },
131
104
  close: () => {
132
105
  const worker = this.workers.get(id);
133
106
  if (worker) {
@@ -138,13 +111,64 @@ class BullMQWrapper {
138
111
  }
139
112
  };
140
113
  }
114
+ convertJob(job) {
115
+ return {
116
+ id: job.id || "",
117
+ name: job.name,
118
+ data: job.data,
119
+ get progress() {
120
+ return job.progress;
121
+ },
122
+ updateProgress: progress => job.updateProgress(progress),
123
+ waitUntilFinished: () => job.waitUntilFinished(this.events.getInstance()).finally(() => this.events.releaseInstance())
124
+ };
125
+ }
141
126
  getWorkerOptions(optionsOrCallback) {
142
127
  return typeof optionsOrCallback === "function" ? { callback: optionsOrCallback } : optionsOrCallback;
143
128
  }
144
129
  }
145
- class QueueEventEmitter extends event_emitter_1.EventEmitter {
146
- tryEmit(getArgs) {
147
- return this.count ? super.emit(getArgs()) : Promise.resolve();
130
+ class WorkerEventEmitter extends event_emitter_1.EventEmitter {
131
+ constructor(worker, name, convertArgs) {
132
+ super();
133
+ this.worker = worker;
134
+ this.name = name;
135
+ this.convertArgs = convertArgs;
136
+ this.listener = ((...args) => {
137
+ this.emit(this.convertArgs(...args));
138
+ });
139
+ }
140
+ callbackRegistered() {
141
+ if (this.count === 1) {
142
+ this.worker.on(this.name, this.listener);
143
+ }
144
+ }
145
+ callbackUnregistered() {
146
+ if (this.count === 0) {
147
+ this.worker.off(this.name, this.listener);
148
+ }
149
+ }
150
+ }
151
+ /**
152
+ * Manages a reference to a QueueEvents object and will close the connection when all references have been released.
153
+ * BullMQ uses Redis Streams so only open a connection when necessary.
154
+ */
155
+ class QueueEventsReference {
156
+ constructor(queueName, connection) {
157
+ this.queueName = queueName;
158
+ this.connection = connection;
159
+ this.count = 0;
160
+ }
161
+ getInstance() {
162
+ this.events = this.events || new bullmq_1.QueueEvents(this.queueName, { connection: this.connection });
163
+ this.count++;
164
+ return this.events;
165
+ }
166
+ releaseInstance() {
167
+ this.count--;
168
+ if (!this.count && this.events) {
169
+ this.events.close();
170
+ this.events = undefined;
171
+ }
148
172
  }
149
173
  }
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzQ0FBNkY7QUFDN0YsNENBQXdEO0FBQ3hELHdDQUVzQjtBQUN0Qix3REFBNEQ7QUFDNUQsbUNBQTRGO0FBbUI1RixTQUFTLFVBQVUsQ0FBQyxHQUFRO0lBQ3hCLE9BQU87UUFDSCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFO1FBQ2hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLElBQUksUUFBUTtZQUNSLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN4QixDQUFDO1FBQ0QsY0FBYyxDQUFDLFFBQVE7WUFDbkIsT0FBTyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVZLFFBQUEseUJBQXlCLEdBQUcsbUJBQVksRUFBNkIsQ0FBQztBQUVuRixNQUFhLGlCQUFpQjtJQUE5QjtRQUNxQixhQUFRLEdBQXlCLEVBQUUsQ0FBQztRQUU1QyxTQUFJLEdBQUcsY0FBYyxDQUFDO1FBQ3RCLGlCQUFZLEdBQUc7WUFDcEIsdUJBQWE7WUFDYixtQkFBVztTQUNkLENBQUM7SUFpQk4sQ0FBQztJQWZHLFVBQVUsQ0FBQyxJQUF3QjtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLGlDQUF5QixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUMxRCxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFPLENBQUMsRUFDckIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVB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QUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4SSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdLLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0IsT0FBTztZQUNILEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLElBQUksTUFBTSxFQUFFO29CQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN4QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDekI7Z0JBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsaUJBQWtEO1FBQ3ZFLE9BQU8sT0FBTyxpQkFBaUIsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0lBQ3pHLENBQUM7Q0FDSjtBQUVELE1BQU0saUJBQXlCLFNBQVEsNEJBQW1CO0lBQ3RELE9BQU8sQ0FBQyxPQUFvQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FDSiJ9
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzQ0FBNkY7QUFDN0YsNENBQXdEO0FBQ3hELHdDQUVzQjtBQUN0Qix3REFBb0Q7QUFDcEQsbUNBQXlIO0FBcUI1RyxRQUFBLHlCQUF5QixHQUFHLG1CQUFZLEVBQTZCLENBQUM7QUFFbkYsTUFBYSxpQkFBaUI7SUFBOUI7UUFDcUIsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFFNUMsU0FBSSxHQUFHLGNBQWMsQ0FBQztRQUN0QixpQkFBWSxHQUFHO1lBQ3BCLHVCQUFhO1lBQ2IsbUJBQVc7U0FDZCxDQUFDO0lBaUJOLENBQUM7SUFmRyxVQUFVLENBQUMsSUFBd0I7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQ0FBeUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDL0QsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FDMUQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBTyxDQUFDLEVBQ3JCLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxFQUM3QixPQUFPLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUNwQyxPQUFPLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUF1QjtRQUNqRCxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ2IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBbUIsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shrub/queue-bullmq",
3
3
  "description": "Provides a job/worker queue using BullMQ.",
4
- "version": "0.5.56",
4
+ "version": "0.5.59",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -24,14 +24,14 @@
24
24
  "clean": "rimraf ./dist && rimraf tsconfig.tsbuildinfo"
25
25
  },
26
26
  "dependencies": {
27
- "@shrub/core": "0.5.56",
28
- "@shrub/logging": "0.5.56",
29
- "@shrub/queue": "0.5.56",
27
+ "@shrub/core": "0.5.59",
28
+ "@shrub/logging": "0.5.59",
29
+ "@shrub/queue": "0.5.59",
30
30
  "@sprig/event-emitter": "^0.2.0",
31
31
  "bullmq": "^1.80.6"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/ioredis": "^4.28.2"
35
35
  },
36
- "gitHead": "22c75fe24dace30cd85b72e34a4509069e6f0526"
36
+ "gitHead": "be17fea967675b2b1cc5411debd4e276dbd46d05"
37
37
  }