@shrub/queue-bullmq 0.5.51 → 0.5.54
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 +2 -1
- package/dist/module.js +89 -58
- package/package.json +5 -5
package/dist/module.d.ts
CHANGED
|
@@ -2,9 +2,10 @@ import { IModule, IModuleConfigurator, IModuleInitializer } from "@shrub/core";
|
|
|
2
2
|
import { LoggingModule } from "@shrub/logging";
|
|
3
3
|
import { QueueModule } from "@shrub/queue";
|
|
4
4
|
import { ConnectionOptions } from "bullmq";
|
|
5
|
+
export { ConnectionOptions };
|
|
5
6
|
export interface IQueueBullMQConfiguration {
|
|
6
7
|
/** Enables the use of the a BullMQ job queue. */
|
|
7
|
-
|
|
8
|
+
useQueue(options?: IQueueBullMQOptions): void;
|
|
8
9
|
}
|
|
9
10
|
/** Defines options for the BullMQ job queue. */
|
|
10
11
|
export interface IQueueBullMQOptions {
|
package/dist/module.js
CHANGED
|
@@ -30,7 +30,7 @@ class QueueBullMQModule {
|
|
|
30
30
|
}
|
|
31
31
|
initialize(init) {
|
|
32
32
|
init.config(exports.IQueueBullMQConfiguration).register(({ services }) => ({
|
|
33
|
-
|
|
33
|
+
useQueue: options => this.adapters.push(new BullMQQueueAdapter(services.get(logging_1.ILogger), options && options.connection, options && options.queueNamePatterns, options && options.queueSchedulers))
|
|
34
34
|
}));
|
|
35
35
|
}
|
|
36
36
|
async configure({ config, next }) {
|
|
@@ -48,71 +48,102 @@ class BullMQQueueAdapter extends queue_1.QueueAdapter {
|
|
|
48
48
|
this.initializeSchedulers(queueSchedulers || []);
|
|
49
49
|
}
|
|
50
50
|
getQueueInstance(name) {
|
|
51
|
-
|
|
52
|
-
const jobCompleted = new QueueEventEmitter();
|
|
53
|
-
const jobFailed = new QueueEventEmitter();
|
|
54
|
-
const jobProgress = new QueueEventEmitter();
|
|
55
|
-
let instance;
|
|
56
|
-
return {
|
|
57
|
-
get onJobActive() {
|
|
58
|
-
return jobActive.event;
|
|
59
|
-
},
|
|
60
|
-
get onJobCompleted() {
|
|
61
|
-
return jobCompleted.event;
|
|
62
|
-
},
|
|
63
|
-
get onJobFailed() {
|
|
64
|
-
return jobFailed.event;
|
|
65
|
-
},
|
|
66
|
-
get onJobProgress() {
|
|
67
|
-
return jobProgress.event;
|
|
68
|
-
},
|
|
69
|
-
add: options => {
|
|
70
|
-
const jobOptions = {
|
|
71
|
-
delay: options.delay,
|
|
72
|
-
repeat: options.repeat && {
|
|
73
|
-
cron: options.repeat.cron,
|
|
74
|
-
immediately: options.repeat.immediate
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
instance = instance || new bullmq_1.Queue(name, { connection: this.connection });
|
|
78
|
-
return instance.add(options.name || "", options.data || {}, jobOptions).then(job => convertJob(job));
|
|
79
|
-
},
|
|
80
|
-
process: options => {
|
|
81
|
-
const worker = new bullmq_1.Worker(name, job => options.callback(convertJob(job)), {
|
|
82
|
-
concurrency: options.concurrency,
|
|
83
|
-
connection: this.connection
|
|
84
|
-
});
|
|
85
|
-
// BullMQ recommends attaching to 'error' and since we don't get job info pass the error to the logger
|
|
86
|
-
// https://docs.bullmq.io/guide/workers
|
|
87
|
-
worker.on("error", error => this.logger.logError(error));
|
|
88
|
-
worker.on("active", job => {
|
|
89
|
-
this.logger.logDebug({ name: "BullMQ - job active", queueName: job.queueName, job: job.id });
|
|
90
|
-
jobActive.tryEmit(() => ({ job: convertJob(job) }));
|
|
91
|
-
});
|
|
92
|
-
worker.on("completed", (job, returnValue) => {
|
|
93
|
-
this.logger.logDebug({ name: "BullMQ - job completed", queueName: job.queueName, job: job.id });
|
|
94
|
-
jobCompleted.tryEmit(() => ({ job: convertJob(job), returnValue }));
|
|
95
|
-
});
|
|
96
|
-
worker.on("failed", (job, error) => {
|
|
97
|
-
this.logger.logWarn({ name: "BullMQ - job failed", queueName: job.queueName, job: job.id, message: error.message, stack: error.stack });
|
|
98
|
-
jobFailed.tryEmit(() => ({ job: convertJob(job), error }));
|
|
99
|
-
});
|
|
100
|
-
worker.on("progress", (job, progress) => {
|
|
101
|
-
this.logger.logDebug({ name: "BullMQ - job progress", queueName: job.queueName, job: job.id, progress: typeof progress === "number" ? progress : JSON.stringify(progress) });
|
|
102
|
-
jobProgress.tryEmit(() => ({ job: convertJob(job), progress }));
|
|
103
|
-
});
|
|
104
|
-
return worker;
|
|
105
|
-
}
|
|
106
|
-
};
|
|
51
|
+
return new BullMQWrapper(this.logger, name, this.connection);
|
|
107
52
|
}
|
|
108
53
|
initializeSchedulers(queueSchedulers) {
|
|
109
54
|
// TODO: is support needed to close the schedulers?
|
|
110
55
|
queueSchedulers.forEach(name => new bullmq_1.QueueScheduler(name, { connection: this.connection }));
|
|
111
56
|
}
|
|
112
57
|
}
|
|
58
|
+
class BullMQWrapper {
|
|
59
|
+
constructor(logger, queueName, connection) {
|
|
60
|
+
this.logger = logger;
|
|
61
|
+
this.queueName = queueName;
|
|
62
|
+
this.connection = connection;
|
|
63
|
+
this.jobActive = new QueueEventEmitter();
|
|
64
|
+
this.jobCompleted = new QueueEventEmitter();
|
|
65
|
+
this.jobFailed = new QueueEventEmitter();
|
|
66
|
+
this.jobProgress = new QueueEventEmitter();
|
|
67
|
+
this.workers = new Map();
|
|
68
|
+
this.workerId = 1;
|
|
69
|
+
}
|
|
70
|
+
get onJobActive() {
|
|
71
|
+
return this.jobActive.event;
|
|
72
|
+
}
|
|
73
|
+
get onJobCompleted() {
|
|
74
|
+
return this.jobCompleted.event;
|
|
75
|
+
}
|
|
76
|
+
get onJobFailed() {
|
|
77
|
+
return this.jobFailed.event;
|
|
78
|
+
}
|
|
79
|
+
get onJobProgress() {
|
|
80
|
+
return this.jobProgress.event;
|
|
81
|
+
}
|
|
82
|
+
add(options) {
|
|
83
|
+
const jobOptions = {
|
|
84
|
+
delay: options.delay,
|
|
85
|
+
repeat: options.repeat && {
|
|
86
|
+
cron: options.repeat.cron,
|
|
87
|
+
immediately: options.repeat.immediate
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
this.instance = this.instance || new bullmq_1.Queue(this.queueName, { connection: this.connection });
|
|
91
|
+
return this.instance.add(options.name || "", options.data || {}, jobOptions).then(job => convertJob(job));
|
|
92
|
+
}
|
|
93
|
+
async close() {
|
|
94
|
+
const promises = Array.from(this.workers.values()).map(worker => worker.close());
|
|
95
|
+
this.workers.clear();
|
|
96
|
+
if (this.instance) {
|
|
97
|
+
promises.push(this.instance.close());
|
|
98
|
+
this.instance = undefined;
|
|
99
|
+
}
|
|
100
|
+
await Promise.all(promises);
|
|
101
|
+
}
|
|
102
|
+
process(optionsOrCallback) {
|
|
103
|
+
const options = this.getProcessOptions(optionsOrCallback);
|
|
104
|
+
const worker = new bullmq_1.Worker(this.queueName, job => options.callback(convertJob(job)), {
|
|
105
|
+
concurrency: options.concurrency,
|
|
106
|
+
connection: this.connection
|
|
107
|
+
});
|
|
108
|
+
// BullMQ recommends attaching to 'error' and since we don't get job info pass the error to the logger
|
|
109
|
+
// https://docs.bullmq.io/guide/workers
|
|
110
|
+
worker.on("error", error => this.logger.logError(error));
|
|
111
|
+
worker.on("active", job => {
|
|
112
|
+
this.logger.logDebug({ name: "BullMQ - job active", queueName: job.queueName, job: job.id });
|
|
113
|
+
this.jobActive.tryEmit(() => ({ job: convertJob(job) }));
|
|
114
|
+
});
|
|
115
|
+
worker.on("completed", (job, returnValue) => {
|
|
116
|
+
this.logger.logDebug({ name: "BullMQ - job completed", queueName: job.queueName, job: job.id });
|
|
117
|
+
this.jobCompleted.tryEmit(() => ({ job: convertJob(job), returnValue }));
|
|
118
|
+
});
|
|
119
|
+
worker.on("failed", (job, error) => {
|
|
120
|
+
this.logger.logWarn({ name: "BullMQ - job failed", queueName: job.queueName, job: job.id, message: error.message, stack: error.stack });
|
|
121
|
+
this.jobFailed.tryEmit(() => ({ job: convertJob(job), error }));
|
|
122
|
+
});
|
|
123
|
+
worker.on("progress", (job, progress) => {
|
|
124
|
+
this.logger.logDebug({ name: "BullMQ - job progress", queueName: job.queueName, job: job.id, progress: typeof progress === "number" ? progress : JSON.stringify(progress) });
|
|
125
|
+
this.jobProgress.tryEmit(() => ({ job: convertJob(job), progress }));
|
|
126
|
+
});
|
|
127
|
+
const id = this.workerId++;
|
|
128
|
+
this.workers.set(id, worker);
|
|
129
|
+
return {
|
|
130
|
+
close: () => {
|
|
131
|
+
const worker = this.workers.get(id);
|
|
132
|
+
if (worker) {
|
|
133
|
+
this.workers.delete(id);
|
|
134
|
+
return worker.close();
|
|
135
|
+
}
|
|
136
|
+
return Promise.resolve();
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
getProcessOptions(optionsOrCallback) {
|
|
141
|
+
return typeof optionsOrCallback === "function" ? { callback: optionsOrCallback } : optionsOrCallback;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
113
144
|
class QueueEventEmitter extends event_emitter_1.EventEmitter {
|
|
114
145
|
tryEmit(getArgs) {
|
|
115
146
|
return this.count ? super.emit(getArgs()) : Promise.resolve();
|
|
116
147
|
}
|
|
117
148
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzQ0FBNkY7QUFDN0YsNENBQXdEO0FBQ3hELHdDQUVzQjtBQUN0Qix3REFBNEQ7QUFDNUQsbUNBQTRGO0FBbUI1RixTQUFTLFVBQVUsQ0FBQyxHQUFRO0lBQ3hCLE9BQU87UUFDSCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFO1FBQ2hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLElBQUksUUFBUTtZQUNSLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN4QixDQUFDO1FBQ0QsY0FBYyxDQUFDLFFBQVE7WUFDbkIsT0FBTyxHQUFHLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVZLFFBQUEseUJBQXlCLEdBQUcsbUJBQVksRUFBNkIsQ0FBQztBQUVuRixNQUFhLGlCQUFpQjtJQUE5QjtRQUNxQixhQUFRLEdBQXlCLEVBQUUsQ0FBQztRQUU1QyxTQUFJLEdBQUcsY0FBYyxDQUFDO1FBQ3RCLGlCQUFZLEdBQUc7WUFDcEIsdUJBQWE7WUFDYixtQkFBVztTQUNkLENBQUM7SUFpQk4sQ0FBQztJQWZHLFVBQVUsQ0FBQyxJQUF3QjtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLGlDQUF5QixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUMxRCxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFPLENBQUMsRUFDckIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQzdCLE9BQU8sSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQ3BDLE9BQU8sSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQXVCO1FBQ2pELE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDYixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJCQUFtQixDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKO0FBeEJELDhDQXdCQztBQUVELE1BQU0sa0JBQW1CLFNBQVEsb0JBQVk7SUFDekMsWUFDcUIsTUFBZSxFQUNmLFVBQThCLEVBQy9DLGlCQUE0QixFQUM1QixlQUEwQjtRQUN0QixLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBSnJCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUkzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ25DLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxlQUF5QjtRQUNsRCxtREFBbUQ7UUFDbkQsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksdUJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRixDQUFDO0NBQ0o7QUFFRCxNQUFNLGFBQWE7SUFVZixZQUNxQixNQUFlLEVBQ2YsU0FBaUIsRUFDakIsVUFBOEI7UUFGOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFabEMsY0FBUyxHQUFHLElBQUksaUJBQWlCLEVBQXVCLENBQUM7UUFDekQsaUJBQVksR0FBRyxJQUFJLGlCQUFpQixFQUEwQixDQUFDO1FBQy9ELGNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUF1QixDQUFDO1FBQ3pELGdCQUFXLEdBQUcsSUFBSSxpQkFBaUIsRUFBeUIsQ0FBQztRQUM3RCxZQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFHN0MsYUFBUSxHQUFHLENBQUMsQ0FBQztJQU1yQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQW9CO1FBQ3BCLE1BQU0sVUFBVSxHQUFnQjtZQUM1QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUk7Z0JBQ3RCLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUk7Z0JBQ3pCLFdBQVcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVM7YUFDeEM7U0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksY0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDNUYsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDUCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXJCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1NBQzdCO1FBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxPQUFPLENBQUMsaUJBQXVEO1FBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2hGLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsc0dBQXNHO1FBQ3RHLHVDQUF1QztRQUN2QyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4SSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdLLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0IsT0FBTztZQUNILEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLElBQUksTUFBTSxFQUFFO29CQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN4QixPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDekI7Z0JBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDO0lBRU8saUJBQWlCLENBQUMsaUJBQXVEO1FBQzdFLE9BQU8sT0FBTyxpQkFBaUIsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0lBQ3pHLENBQUM7Q0FDSjtBQUVELE1BQU0saUJBQXlCLFNBQVEsNEJBQW1CO0lBQ3RELE9BQU8sQ0FBQyxPQUFvQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FDSiJ9
|
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.
|
|
4
|
+
"version": "0.5.54",
|
|
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.
|
|
28
|
-
"@shrub/logging": "0.5.
|
|
29
|
-
"@shrub/queue": "0.5.
|
|
27
|
+
"@shrub/core": "0.5.54",
|
|
28
|
+
"@shrub/logging": "0.5.54",
|
|
29
|
+
"@shrub/queue": "0.5.54",
|
|
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": "
|
|
36
|
+
"gitHead": "53e4be36d5c2044e4249088151cb2aadff2f2830"
|
|
37
37
|
}
|