@hastehaul/common 2.4.3 → 2.5.0
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.
@@ -1,9 +1,11 @@
|
|
1
1
|
import { Job, Worker } from "bullmq";
|
2
|
+
import { EventEmitter } from 'events';
|
2
3
|
/**
|
3
4
|
* Abstract class representing a worker for processing jobs from a Job Queue.
|
4
5
|
*/
|
5
6
|
export declare abstract class AbstractWorker {
|
6
7
|
protected worker: Worker;
|
8
|
+
protected events: EventEmitter;
|
7
9
|
/**
|
8
10
|
* Creates an instance of AbstractWorker.
|
9
11
|
*
|
@@ -4,6 +4,7 @@ exports.AbstractWorker = void 0;
|
|
4
4
|
const bullmq_1 = require("bullmq");
|
5
5
|
const redis_connection_wrapper_1 = require("../../../connections-wrappers/redis-connection-wrapper");
|
6
6
|
const redis_wrapper_1 = require("../../../connections-wrappers/redis-wrapper");
|
7
|
+
const events_1 = require("events");
|
7
8
|
/**
|
8
9
|
* Abstract class representing a worker for processing jobs from a Job Queue.
|
9
10
|
*/
|
@@ -14,11 +15,17 @@ class AbstractWorker {
|
|
14
15
|
* @param {string} queueName - The name of the job queue that this worker will process jobs from.
|
15
16
|
*/
|
16
17
|
constructor(queueName, useReplicas = true, opts) {
|
18
|
+
this.events = new events_1.EventEmitter();
|
17
19
|
// Create a worker instance with the provided queueName and bind the 'process' method to this worker.
|
18
20
|
this.worker = new bullmq_1.Worker(queueName, this.process.bind(this), Object.assign({ connection: useReplicas ? redis_wrapper_1.rWrapper.masterClient : redis_connection_wrapper_1.redisWrapper.client, autorun: false, prefix: '{BULLMQ}' }, opts));
|
19
21
|
// Handle errors that may occur during job processing.
|
20
22
|
this.worker.on("error", (err) => {
|
21
23
|
console.error(`${queueName} Error: `, err);
|
24
|
+
this.events.emit(`${queueName}-error`, err);
|
25
|
+
});
|
26
|
+
// Emit an event when a job is completed.
|
27
|
+
this.worker.on('completed', (job, returnvalue) => {
|
28
|
+
this.events.emit(`${queueName}-completed`, job, returnvalue);
|
22
29
|
});
|
23
30
|
// Start the worker in non-autorun mode, which means it won't start processing jobs automatically.
|
24
31
|
console.log(" --- WORKER STARTED --- ", queueName);
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@hastehaul/common",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.5.0",
|
4
4
|
"description": "",
|
5
5
|
"main": "./build/index.js",
|
6
6
|
"types": "./build/index.d.ts",
|
@@ -26,7 +26,7 @@
|
|
26
26
|
},
|
27
27
|
"dependencies": {
|
28
28
|
"@vsky/accesscontrol": "^3.0.14",
|
29
|
-
"bullmq": "^
|
29
|
+
"bullmq": "^5.8.3",
|
30
30
|
"express": "^4.18.2",
|
31
31
|
"ioredis": "^5.3.2",
|
32
32
|
"jsonwebtoken": "^9.0.1",
|