@capixjs/transport-queue 0.1.0-alpha.8 → 0.1.0-alpha.9
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.
|
@@ -13,8 +13,10 @@ export type BullMQAdapterOptions = {
|
|
|
13
13
|
export declare class BullMQAdapter implements QueueAdapter {
|
|
14
14
|
private options;
|
|
15
15
|
private workers;
|
|
16
|
+
private queues;
|
|
16
17
|
constructor(options: BullMQAdapterOptions);
|
|
17
18
|
start(queueName: string, onMessage: (msg: QueueMessage) => Promise<QueueResult>): Promise<void>;
|
|
19
|
+
private getQueue;
|
|
18
20
|
enqueue(queueName: string, msg: QueueMessage): Promise<void>;
|
|
19
21
|
stop(): Promise<void>;
|
|
20
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bullmq.d.ts","sourceRoot":"","sources":["../../src/adapters/bullmq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAa3E,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"bullmq.d.ts","sourceRoot":"","sources":["../../src/adapters/bullmq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAa3E,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAOF,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,OAAO,CAAiD;IAKhE,OAAO,CAAC,MAAM,CAAyC;gBAE3C,OAAO,EAAE,oBAAoB;IAInC,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,GACrD,OAAO,CAAC,IAAI,CAAC;IAwBhB,OAAO,CAAC,QAAQ;IAYV,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAW5B"}
|
package/dist/adapters/bullmq.js
CHANGED
|
@@ -10,6 +10,11 @@ async function loadBullMQ() {
|
|
|
10
10
|
export class BullMQAdapter {
|
|
11
11
|
options;
|
|
12
12
|
workers = new Map();
|
|
13
|
+
// One Queue (and Redis connection) per queue name, reused across enqueues.
|
|
14
|
+
// Creating and closing a Queue per enqueue opens a new Redis connection per
|
|
15
|
+
// job — connection churn that collapses enqueue throughput under load.
|
|
16
|
+
// Stored as promises so concurrent first enqueues share one instance.
|
|
17
|
+
queues = new Map();
|
|
13
18
|
constructor(options) {
|
|
14
19
|
this.options = options;
|
|
15
20
|
}
|
|
@@ -30,17 +35,29 @@ export class BullMQAdapter {
|
|
|
30
35
|
this.workers.set(queueName, worker);
|
|
31
36
|
console.log(`[capix] Queue transport processing: ${queueName}`);
|
|
32
37
|
}
|
|
38
|
+
getQueue(queueName) {
|
|
39
|
+
let queue = this.queues.get(queueName);
|
|
40
|
+
if (queue === undefined) {
|
|
41
|
+
queue = loadBullMQ().then(({ Queue }) => new Queue(queueName, { connection: this.options.connection }));
|
|
42
|
+
this.queues.set(queueName, queue);
|
|
43
|
+
}
|
|
44
|
+
return queue;
|
|
45
|
+
}
|
|
33
46
|
async enqueue(queueName, msg) {
|
|
34
|
-
const
|
|
35
|
-
const queue = new Queue(queueName, { connection: this.options.connection });
|
|
47
|
+
const queue = await this.getQueue(queueName);
|
|
36
48
|
await queue.add(msg.capability, msg, { jobId: msg.id });
|
|
37
|
-
await queue.close();
|
|
38
49
|
}
|
|
39
50
|
async stop() {
|
|
40
51
|
for (const worker of this.workers.values()) {
|
|
41
52
|
await worker.close();
|
|
42
53
|
}
|
|
43
54
|
this.workers.clear();
|
|
55
|
+
for (const queuePromise of this.queues.values()) {
|
|
56
|
+
const queue = await queuePromise.catch(() => null);
|
|
57
|
+
if (queue !== null)
|
|
58
|
+
await queue.close();
|
|
59
|
+
}
|
|
60
|
+
this.queues.clear();
|
|
44
61
|
}
|
|
45
62
|
}
|
|
46
63
|
//# sourceMappingURL=bullmq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bullmq.js","sourceRoot":"","sources":["../../src/adapters/bullmq.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,6EAA6E;YAC7E,uCAAuC,CACxC,CAAC;IACJ,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"bullmq.js","sourceRoot":"","sources":["../../src/adapters/bullmq.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capixjs/transport-queue",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.9",
|
|
4
4
|
"description": "Message queue transport for Capix (BullMQ + in-memory)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"typescript": "^5.5.0",
|
|
56
56
|
"vitest": "^1.6.0",
|
|
57
57
|
"zod": "^3.23.0",
|
|
58
|
-
"@capixjs/core": "0.1.0-alpha.
|
|
58
|
+
"@capixjs/core": "0.1.0-alpha.9"
|
|
59
59
|
},
|
|
60
60
|
"scripts": {
|
|
61
61
|
"build": "tsc",
|