atomic-queues 1.4.1 → 1.5.2
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/README.md +279 -286
- package/dist/module/atomic-queues.module.d.ts.map +1 -1
- package/dist/module/atomic-queues.module.js +1 -0
- package/dist/module/atomic-queues.module.js.map +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/processor-discovery/processor-discovery.service.d.ts +21 -1
- package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +1 -1
- package/dist/services/processor-discovery/processor-discovery.service.js +97 -3
- package/dist/services/processor-discovery/processor-discovery.service.js.map +1 -1
- package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +23 -2
- package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +1 -1
- package/dist/services/queue-events-manager/queue-events-manager.service.js +66 -22
- package/dist/services/queue-events-manager/queue-events-manager.service.js.map +1 -1
- package/dist/services/spawn-queue/index.d.ts +2 -0
- package/dist/services/spawn-queue/index.d.ts.map +1 -0
- package/dist/services/spawn-queue/index.js +18 -0
- package/dist/services/spawn-queue/index.js.map +1 -0
- package/dist/services/spawn-queue/spawn-queue.service.d.ts +119 -0
- package/dist/services/spawn-queue/spawn-queue.service.d.ts.map +1 -0
- package/dist/services/spawn-queue/spawn-queue.service.js +273 -0
- package/dist/services/spawn-queue/spawn-queue.service.js.map +1 -0
- package/dist/services/worker-manager/worker-manager.service.d.ts +18 -3
- package/dist/services/worker-manager/worker-manager.service.d.ts.map +1 -1
- package/dist/services/worker-manager/worker-manager.service.js +44 -20
- package/dist/services/worker-manager/worker-manager.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomic-queues.module.d.ts","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAIb,IAAI,EACL,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,yBAAyB,EAAe,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"atomic-queues.module.d.ts","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAIb,IAAI,EACL,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,yBAAyB,EAAe,MAAM,WAAW,CAAC;AAsBnE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,CACV,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,OAAO,CAAC,yBAAyB,CAAC,GAAG,yBAAyB,CAAC;IAEpE;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBAEa,kBAAkB;IAC7B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,GAAG,aAAa;IA0BhE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,8BAA8B,GAAG,aAAa;IAyB3E;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,aAAa;IAgBjB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAuBlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAUxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAqBxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomic-queues.module.js","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAMwB;AACxB,uCAAkF;AAClF,sDAA4B;AAE5B,
|
|
1
|
+
{"version":3,"file":"atomic-queues.module.js","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"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"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
|
package/dist/services/index.js
CHANGED
|
@@ -27,4 +27,5 @@ __exportStar(require("./processor-discovery"), exports);
|
|
|
27
27
|
__exportStar(require("./command-discovery"), exports);
|
|
28
28
|
__exportStar(require("./queue-bus"), exports);
|
|
29
29
|
__exportStar(require("./queue-events-manager"), exports);
|
|
30
|
+
__exportStar(require("./spawn-queue"), exports);
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,kDAAgC;AAChC,iDAA+B;AAC/B,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC;AACjC,wDAAsC;AACtC,sDAAoC;AACpC,8CAA4B;AAC5B,yDAAuC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,kDAAgC;AAChC,iDAA+B;AAC/B,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC;AACjC,wDAAsC;AACtC,sDAAoC;AACpC,8CAA4B;AAC5B,yDAAuC;AACvC,gDAA8B"}
|
|
@@ -7,6 +7,7 @@ import { CronManagerService } from '../cron-manager';
|
|
|
7
7
|
import { CommandDiscoveryService } from '../command-discovery';
|
|
8
8
|
import { ServiceQueueManager } from '../service-queue';
|
|
9
9
|
import { QueueEventsManagerService } from '../queue-events-manager';
|
|
10
|
+
import { SpawnQueueService } from '../spawn-queue';
|
|
10
11
|
import { IAtomicQueuesModuleConfig } from '../../domain';
|
|
11
12
|
interface ICommandBus {
|
|
12
13
|
execute<T>(command: T): Promise<any>;
|
|
@@ -85,6 +86,7 @@ export declare class ProcessorDiscoveryService implements OnModuleInit {
|
|
|
85
86
|
private readonly commandDiscovery;
|
|
86
87
|
private readonly serviceQueueManager;
|
|
87
88
|
private readonly queueEventsManager;
|
|
89
|
+
private readonly spawnQueueService;
|
|
88
90
|
private readonly config;
|
|
89
91
|
private readonly logger;
|
|
90
92
|
private readonly processors;
|
|
@@ -92,7 +94,7 @@ export declare class ProcessorDiscoveryService implements OnModuleInit {
|
|
|
92
94
|
private readonly activeWorkers;
|
|
93
95
|
private commandBus;
|
|
94
96
|
private queryBus;
|
|
95
|
-
constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, moduleRef: ModuleRef, workerManager: WorkerManagerService, queueManager: QueueManagerService, cronManager: CronManagerService, commandDiscovery: CommandDiscoveryService, serviceQueueManager: ServiceQueueManager, queueEventsManager: QueueEventsManagerService, config: IAtomicQueuesModuleConfig);
|
|
97
|
+
constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, moduleRef: ModuleRef, workerManager: WorkerManagerService, queueManager: QueueManagerService, cronManager: CronManagerService, commandDiscovery: CommandDiscoveryService, serviceQueueManager: ServiceQueueManager, queueEventsManager: QueueEventsManagerService, spawnQueueService: SpawnQueueService, config: IAtomicQueuesModuleConfig);
|
|
96
98
|
/**
|
|
97
99
|
* Set the CommandBus for executing commands from QueueBus registry
|
|
98
100
|
*/
|
|
@@ -102,6 +104,12 @@ export declare class ProcessorDiscoveryService implements OnModuleInit {
|
|
|
102
104
|
*/
|
|
103
105
|
setQueryBus(queryBus: IQueryBus): void;
|
|
104
106
|
onModuleInit(): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Attempt to resolve CommandBus and QueryBus from the DI container.
|
|
109
|
+
* This allows config-driven mode to work out of the box when the
|
|
110
|
+
* consuming app imports CqrsModule, without requiring a manual bridge.
|
|
111
|
+
*/
|
|
112
|
+
private autoWireCqrsBuses;
|
|
105
113
|
/**
|
|
106
114
|
* Register entity types from module config `entities` option.
|
|
107
115
|
* This creates virtual processors for entities that don't have explicit @WorkerProcessor classes.
|
|
@@ -116,8 +124,20 @@ export declare class ProcessorDiscoveryService implements OnModuleInit {
|
|
|
116
124
|
* Register processors that don't have an EntityScaler (scalerless mode).
|
|
117
125
|
* These processors will auto-spawn workers when jobs arrive and
|
|
118
126
|
* auto-terminate when idle.
|
|
127
|
+
*
|
|
128
|
+
* When SpawnQueueService is available, this registration is SKIPPED
|
|
129
|
+
* because the spawn queue handles both on-demand worker creation
|
|
130
|
+
* (distributed across pods) and idle cleanup (local sweep).
|
|
131
|
+
* The old CronManager path creates workers eagerly via polling,
|
|
132
|
+
* which defeats the purpose of distributed spawn.
|
|
119
133
|
*/
|
|
120
134
|
private registerScalerlessProcessors;
|
|
135
|
+
/**
|
|
136
|
+
* Register with SpawnQueueService for distributed worker creation.
|
|
137
|
+
* This replaces the cron-based approach: every pod's SpawnQueueService
|
|
138
|
+
* worker can pick up spawn jobs and create entity workers locally.
|
|
139
|
+
*/
|
|
140
|
+
private registerWithSpawnQueue;
|
|
121
141
|
/**
|
|
122
142
|
* Setup QueueEvents listening for job arrivals.
|
|
123
143
|
* This enables automatic worker spawning when jobs are added.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-discovery.service.d.ts","sourceRoot":"","sources":["../../../src/services/processor-discovery/processor-discovery.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,IAAI,EAGL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG5E,OAAO,EAQL,sBAAsB,EACtB,mBAAmB,EAKpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"processor-discovery.service.d.ts","sourceRoot":"","sources":["../../../src/services/processor-discovery/processor-discovery.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ const command_discovery_1 = require("../command-discovery");
|
|
|
24
24
|
const service_queue_1 = require("../service-queue");
|
|
25
25
|
const queue_bus_1 = require("../queue-bus");
|
|
26
26
|
const queue_events_manager_1 = require("../queue-events-manager");
|
|
27
|
+
const spawn_queue_1 = require("../spawn-queue");
|
|
27
28
|
const constants_1 = require("../constants");
|
|
28
29
|
/**
|
|
29
30
|
* ProcessorDiscoveryService
|
|
@@ -56,7 +57,7 @@ const constants_1 = require("../constants");
|
|
|
56
57
|
* ```
|
|
57
58
|
*/
|
|
58
59
|
let ProcessorDiscoveryService = ProcessorDiscoveryService_1 = class ProcessorDiscoveryService {
|
|
59
|
-
constructor(discoveryService, metadataScanner, moduleRef, workerManager, queueManager, cronManager, commandDiscovery, serviceQueueManager, queueEventsManager, config) {
|
|
60
|
+
constructor(discoveryService, metadataScanner, moduleRef, workerManager, queueManager, cronManager, commandDiscovery, serviceQueueManager, queueEventsManager, spawnQueueService, config) {
|
|
60
61
|
this.discoveryService = discoveryService;
|
|
61
62
|
this.metadataScanner = metadataScanner;
|
|
62
63
|
this.moduleRef = moduleRef;
|
|
@@ -66,6 +67,7 @@ let ProcessorDiscoveryService = ProcessorDiscoveryService_1 = class ProcessorDis
|
|
|
66
67
|
this.commandDiscovery = commandDiscovery;
|
|
67
68
|
this.serviceQueueManager = serviceQueueManager;
|
|
68
69
|
this.queueEventsManager = queueEventsManager;
|
|
70
|
+
this.spawnQueueService = spawnQueueService;
|
|
69
71
|
this.config = config;
|
|
70
72
|
this.logger = new common_1.Logger(ProcessorDiscoveryService_1.name);
|
|
71
73
|
this.processors = new Map();
|
|
@@ -105,11 +107,46 @@ let ProcessorDiscoveryService = ProcessorDiscoveryService_1 = class ProcessorDis
|
|
|
105
107
|
await this.registerScalersWithCronManager();
|
|
106
108
|
await this.registerScalerlessProcessors();
|
|
107
109
|
await this.registerSpawnWorkerHandler();
|
|
110
|
+
await this.registerWithSpawnQueue();
|
|
108
111
|
await this.setupQueueEventsListening();
|
|
109
112
|
// Auto-register commands from CQRS handlers (default: true)
|
|
110
113
|
if (this.config.autoRegisterCommands !== false) {
|
|
111
114
|
this.autoRegisterCommandsFromCqrs();
|
|
112
115
|
}
|
|
116
|
+
// Auto-wire CommandBus/QueryBus from @nestjs/cqrs if available
|
|
117
|
+
this.autoWireCqrsBuses();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Attempt to resolve CommandBus and QueryBus from the DI container.
|
|
121
|
+
* This allows config-driven mode to work out of the box when the
|
|
122
|
+
* consuming app imports CqrsModule, without requiring a manual bridge.
|
|
123
|
+
*/
|
|
124
|
+
autoWireCqrsBuses() {
|
|
125
|
+
if (!this.discoveryService)
|
|
126
|
+
return;
|
|
127
|
+
const providers = this.discoveryService.getProviders();
|
|
128
|
+
if (!this.commandBus) {
|
|
129
|
+
const commandBusWrapper = providers.find((w) => w.metatype?.name === 'CommandBus' && w.instance);
|
|
130
|
+
if (commandBusWrapper?.instance) {
|
|
131
|
+
this.setCommandBus(commandBusWrapper.instance);
|
|
132
|
+
this.logger.log('Auto-wired CommandBus from @nestjs/cqrs');
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.logger.debug('CommandBus not found in DI container. ' +
|
|
136
|
+
'Import CqrsModule in your app or call setCommandBus() manually.');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (!this.queryBus) {
|
|
140
|
+
const queryBusWrapper = providers.find((w) => w.metatype?.name === 'QueryBus' && w.instance);
|
|
141
|
+
if (queryBusWrapper?.instance) {
|
|
142
|
+
this.setQueryBus(queryBusWrapper.instance);
|
|
143
|
+
this.logger.log('Auto-wired QueryBus from @nestjs/cqrs');
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.logger.debug('QueryBus not found in DI container. ' +
|
|
147
|
+
'Import CqrsModule in your app or call setQueryBus() manually.');
|
|
148
|
+
}
|
|
149
|
+
}
|
|
113
150
|
}
|
|
114
151
|
/**
|
|
115
152
|
* Register entity types from module config `entities` option.
|
|
@@ -167,8 +204,21 @@ let ProcessorDiscoveryService = ProcessorDiscoveryService_1 = class ProcessorDis
|
|
|
167
204
|
* Register processors that don't have an EntityScaler (scalerless mode).
|
|
168
205
|
* These processors will auto-spawn workers when jobs arrive and
|
|
169
206
|
* auto-terminate when idle.
|
|
207
|
+
*
|
|
208
|
+
* When SpawnQueueService is available, this registration is SKIPPED
|
|
209
|
+
* because the spawn queue handles both on-demand worker creation
|
|
210
|
+
* (distributed across pods) and idle cleanup (local sweep).
|
|
211
|
+
* The old CronManager path creates workers eagerly via polling,
|
|
212
|
+
* which defeats the purpose of distributed spawn.
|
|
170
213
|
*/
|
|
171
214
|
async registerScalerlessProcessors() {
|
|
215
|
+
// When SpawnQueueService is available, skip CronManager registration entirely.
|
|
216
|
+
// The spawn queue + idle sweep replaces the cron-based scaling for scalerless processors.
|
|
217
|
+
if (this.spawnQueueService) {
|
|
218
|
+
this.logger.log('SpawnQueueService detected — skipping CronManager registration for scalerless processors ' +
|
|
219
|
+
'(spawn queue handles on-demand creation + idle sweep)');
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
172
222
|
if (!this.cronManager) {
|
|
173
223
|
this.logger.debug('CronManager not available, skipping scalerless processor registration');
|
|
174
224
|
return;
|
|
@@ -209,6 +259,48 @@ let ProcessorDiscoveryService = ProcessorDiscoveryService_1 = class ProcessorDis
|
|
|
209
259
|
this.logger.log(`Registered scalerless config for '${entityType}' (idleTimeout: ${scalingConfig.idleTimeoutSeconds}s)`);
|
|
210
260
|
}
|
|
211
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Register with SpawnQueueService for distributed worker creation.
|
|
264
|
+
* This replaces the cron-based approach: every pod's SpawnQueueService
|
|
265
|
+
* worker can pick up spawn jobs and create entity workers locally.
|
|
266
|
+
*/
|
|
267
|
+
async registerWithSpawnQueue() {
|
|
268
|
+
if (!this.spawnQueueService) {
|
|
269
|
+
this.logger.debug('SpawnQueueService not available, skipping spawn queue registration');
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
// Register the spawn handler — this is what runs on the pod that picks up the spawn job
|
|
273
|
+
this.spawnQueueService.registerSpawnHandler(async (entityType, entityId) => {
|
|
274
|
+
const scaler = this.scalers.get(entityType);
|
|
275
|
+
const processor = this.processors.get(entityType);
|
|
276
|
+
// Call custom spawn handler if scaler has @OnSpawnWorker defined
|
|
277
|
+
if (scaler?.methods.onSpawnWorker) {
|
|
278
|
+
await scaler.scalerInstance[scaler.methods.onSpawnWorker](entityId);
|
|
279
|
+
}
|
|
280
|
+
// Auto-create worker if processor is registered
|
|
281
|
+
if (processor) {
|
|
282
|
+
await this.createWorkerForEntity(entityType, entityId);
|
|
283
|
+
}
|
|
284
|
+
if (!scaler?.methods.onSpawnWorker && !processor) {
|
|
285
|
+
this.logger.warn(`No spawn handler for entity type '${entityType}'. ` +
|
|
286
|
+
`Register a @WorkerProcessor or configure in entities config.`);
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
// Register idle timeouts for each entity type
|
|
290
|
+
for (const [entityType, processor] of this.processors) {
|
|
291
|
+
const idleTimeout = processor.options.idleTimeoutSeconds ?? 15;
|
|
292
|
+
this.spawnQueueService.registerIdleTimeout(entityType, idleTimeout);
|
|
293
|
+
}
|
|
294
|
+
for (const [entityType, scaler] of this.scalers) {
|
|
295
|
+
const idleTimeout = scaler.options.idleTimeoutSeconds ?? 15;
|
|
296
|
+
this.spawnQueueService.registerIdleTimeout(entityType, idleTimeout);
|
|
297
|
+
}
|
|
298
|
+
this.logger.log('Registered with SpawnQueueService for distributed worker creation');
|
|
299
|
+
// Wire QueueEventsManager reference for hot-cache eviction on idle close
|
|
300
|
+
if (this.queueEventsManager) {
|
|
301
|
+
this.spawnQueueService.setQueueEventsManager(this.queueEventsManager);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
212
304
|
/**
|
|
213
305
|
* Setup QueueEvents listening for job arrivals.
|
|
214
306
|
* This enables automatic worker spawning when jobs are added.
|
|
@@ -621,7 +713,8 @@ exports.ProcessorDiscoveryService = ProcessorDiscoveryService = ProcessorDiscove
|
|
|
621
713
|
__param(6, (0, common_1.Optional)()),
|
|
622
714
|
__param(7, (0, common_1.Optional)()),
|
|
623
715
|
__param(8, (0, common_1.Optional)()),
|
|
624
|
-
__param(9, (0, common_1.
|
|
716
|
+
__param(9, (0, common_1.Optional)()),
|
|
717
|
+
__param(10, (0, common_1.Inject)(constants_1.ATOMIC_QUEUES_CONFIG)),
|
|
625
718
|
__metadata("design:paramtypes", [core_1.DiscoveryService,
|
|
626
719
|
core_1.MetadataScanner,
|
|
627
720
|
core_1.ModuleRef,
|
|
@@ -630,6 +723,7 @@ exports.ProcessorDiscoveryService = ProcessorDiscoveryService = ProcessorDiscove
|
|
|
630
723
|
cron_manager_1.CronManagerService,
|
|
631
724
|
command_discovery_1.CommandDiscoveryService,
|
|
632
725
|
service_queue_1.ServiceQueueManager,
|
|
633
|
-
queue_events_manager_1.QueueEventsManagerService,
|
|
726
|
+
queue_events_manager_1.QueueEventsManagerService,
|
|
727
|
+
spawn_queue_1.SpawnQueueService, Object])
|
|
634
728
|
], ProcessorDiscoveryService);
|
|
635
729
|
//# sourceMappingURL=processor-discovery.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-discovery.service.js","sourceRoot":"","sources":["../../../src/services/processor-discovery/processor-discovery.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processor-discovery.service.js","sourceRoot":"","sources":["../../../src/services/processor-discovery/processor-discovery.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import Redis from 'ioredis';
|
|
|
3
3
|
import { IAtomicQueuesModuleConfig } from '../../domain';
|
|
4
4
|
import { WorkerManagerService } from '../worker-manager';
|
|
5
5
|
import { ServiceQueueManager } from '../service-queue';
|
|
6
|
+
import { SpawnQueueService } from '../spawn-queue';
|
|
6
7
|
/**
|
|
7
8
|
* Callback for spawning a worker for an entity.
|
|
8
9
|
*/
|
|
@@ -41,6 +42,7 @@ export declare class QueueEventsManagerService implements OnModuleDestroy {
|
|
|
41
42
|
private readonly redis;
|
|
42
43
|
private readonly config;
|
|
43
44
|
private readonly workerManager;
|
|
45
|
+
private readonly spawnQueueService?;
|
|
44
46
|
private readonly serviceQueueManager?;
|
|
45
47
|
private readonly logger;
|
|
46
48
|
private readonly registeredQueues;
|
|
@@ -48,7 +50,8 @@ export declare class QueueEventsManagerService implements OnModuleDestroy {
|
|
|
48
50
|
private readonly useServiceQueue;
|
|
49
51
|
private readonly entityPatterns;
|
|
50
52
|
private onJobArrivedCallback;
|
|
51
|
-
|
|
53
|
+
private readonly hotCache;
|
|
54
|
+
constructor(redis: Redis, config: IAtomicQueuesModuleConfig, workerManager: WorkerManagerService, spawnQueueService?: SpawnQueueService | undefined, serviceQueueManager?: ServiceQueueManager | undefined);
|
|
52
55
|
/**
|
|
53
56
|
* Register a callback to be called when a job arrives for any queue
|
|
54
57
|
* and no worker exists. Used by ProcessorDiscoveryService.
|
|
@@ -69,9 +72,27 @@ export declare class QueueEventsManagerService implements OnModuleDestroy {
|
|
|
69
72
|
*/
|
|
70
73
|
listenToQueue(queueName: string, entityType: string, extractEntityId: (queueName: string) => string): Promise<void>;
|
|
71
74
|
/**
|
|
72
|
-
* Handle job arrival -
|
|
75
|
+
* Handle job arrival — ultra-low-latency path.
|
|
76
|
+
*
|
|
77
|
+
* Hot path (worker exists in cache): 0 Redis calls. Instant return.
|
|
78
|
+
* Warm path (worker exists in Redis): 1 Redis EXISTS call (O(1)).
|
|
79
|
+
* Cold path (no worker): 1 SET NX claim + direct local creation.
|
|
80
|
+
*
|
|
81
|
+
* This replaces the old flow of: KEYS scan → spawn queue enqueue →
|
|
82
|
+
* spawn queue dequeue → create worker (multiple seconds) with:
|
|
83
|
+
* cache hit → 0ms, or SET NX + local create → ~10ms.
|
|
73
84
|
*/
|
|
74
85
|
private handleJobArrived;
|
|
86
|
+
/**
|
|
87
|
+
* Evict a worker from the hot cache.
|
|
88
|
+
* Called by SpawnQueueService when idle sweep closes a worker,
|
|
89
|
+
* so the next job arrival will trigger a fresh spawn.
|
|
90
|
+
*/
|
|
91
|
+
evictFromHotCache(workerName: string): void;
|
|
92
|
+
/**
|
|
93
|
+
* Get the hot cache size (for diagnostics).
|
|
94
|
+
*/
|
|
95
|
+
getHotCacheSize(): number;
|
|
75
96
|
/**
|
|
76
97
|
* Listen to all queues that match a pattern.
|
|
77
98
|
* Uses Redis SCAN to find existing queues and listens to them.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-events-manager.service.d.ts","sourceRoot":"","sources":["../../../src/services/queue-events-manager/queue-events-manager.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"queue-events-manager.service.d.ts","sourceRoot":"","sources":["../../../src/services/queue-events-manager/queue-events-manager.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;AAYnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBACa,yBAA0B,YAAW,eAAe;IAyBhC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAClB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IA7BnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IACrE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiD;IAClF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAG1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAIhB;IAGf,OAAO,CAAC,oBAAoB,CAAqC;IAQjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAGH,KAAK,EAAE,KAAK,EAEzC,MAAM,EAAE,yBAAyB,EACjC,aAAa,EAAE,oBAAoB,EACvB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA,EACrC,mBAAmB,CAAC,EAAE,mBAAmB,YAAA;IAMxE;;;OAGG;IACH,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAK7D;;;OAGG;IACH,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EACzC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GACzC,IAAI;IAyCP;;;;;;;OAOG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAC7C,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;;;;;;;OAUG;YACW,gBAAgB;IA2D9B;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACG,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CjE;;;OAGG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3E;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrD;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;YACW,QAAQ;IAmBtB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBvC"}
|
|
@@ -23,6 +23,7 @@ const ioredis_1 = __importDefault(require("ioredis"));
|
|
|
23
23
|
const constants_1 = require("../constants");
|
|
24
24
|
const worker_manager_1 = require("../worker-manager");
|
|
25
25
|
const service_queue_1 = require("../service-queue");
|
|
26
|
+
const spawn_queue_1 = require("../spawn-queue");
|
|
26
27
|
/**
|
|
27
28
|
* QueueEventsManagerService
|
|
28
29
|
*
|
|
@@ -54,10 +55,11 @@ const service_queue_1 = require("../service-queue");
|
|
|
54
55
|
* ```
|
|
55
56
|
*/
|
|
56
57
|
let QueueEventsManagerService = QueueEventsManagerService_1 = class QueueEventsManagerService {
|
|
57
|
-
constructor(redis, config, workerManager, serviceQueueManager) {
|
|
58
|
+
constructor(redis, config, workerManager, spawnQueueService, serviceQueueManager) {
|
|
58
59
|
this.redis = redis;
|
|
59
60
|
this.config = config;
|
|
60
61
|
this.workerManager = workerManager;
|
|
62
|
+
this.spawnQueueService = spawnQueueService;
|
|
61
63
|
this.serviceQueueManager = serviceQueueManager;
|
|
62
64
|
this.logger = new common_1.Logger(QueueEventsManagerService_1.name);
|
|
63
65
|
this.registeredQueues = new Map();
|
|
@@ -65,6 +67,13 @@ let QueueEventsManagerService = QueueEventsManagerService_1 = class QueueEventsM
|
|
|
65
67
|
this.entityPatterns = new Map();
|
|
66
68
|
// Global callback for spawning workers
|
|
67
69
|
this.onJobArrivedCallback = null;
|
|
70
|
+
// =========================================================================
|
|
71
|
+
// HOT CACHE — eliminates Redis calls on the warm path entirely.
|
|
72
|
+
// Once we know a worker exists (via Redis check or local creation),
|
|
73
|
+
// we cache the worker name. Subsequent job arrivals for that entity
|
|
74
|
+
// short-circuit without touching Redis at all.
|
|
75
|
+
// =========================================================================
|
|
76
|
+
this.hotCache = new Set();
|
|
68
77
|
this.keyPrefix = config.keyPrefix || 'aq';
|
|
69
78
|
this.useServiceQueue = config.serviceQueue?.enabled !== false;
|
|
70
79
|
}
|
|
@@ -146,45 +155,78 @@ let QueueEventsManagerService = QueueEventsManagerService_1 = class QueueEventsM
|
|
|
146
155
|
this.logger.log(`Listening to queue events: ${queueName}`);
|
|
147
156
|
}
|
|
148
157
|
/**
|
|
149
|
-
* Handle job arrival -
|
|
158
|
+
* Handle job arrival — ultra-low-latency path.
|
|
159
|
+
*
|
|
160
|
+
* Hot path (worker exists in cache): 0 Redis calls. Instant return.
|
|
161
|
+
* Warm path (worker exists in Redis): 1 Redis EXISTS call (O(1)).
|
|
162
|
+
* Cold path (no worker): 1 SET NX claim + direct local creation.
|
|
163
|
+
*
|
|
164
|
+
* This replaces the old flow of: KEYS scan → spawn queue enqueue →
|
|
165
|
+
* spawn queue dequeue → create worker (multiple seconds) with:
|
|
166
|
+
* cache hit → 0ms, or SET NX + local create → ~10ms.
|
|
150
167
|
*/
|
|
151
168
|
async handleJobArrived(queueName, entityType, extractEntityId, jobId) {
|
|
152
169
|
const entityId = extractEntityId(queueName);
|
|
153
|
-
this.logger.debug(`[QueueEvents] Job ${jobId} waiting in ${queueName} (entity: ${entityType}/${entityId})`);
|
|
154
170
|
// Check if worker already exists for this entity
|
|
155
171
|
const pattern = this.entityPatterns.get(entityType);
|
|
156
|
-
if (!pattern)
|
|
157
|
-
this.logger.warn(`No pattern registered for entity type: ${entityType}`);
|
|
172
|
+
if (!pattern)
|
|
158
173
|
return;
|
|
159
|
-
}
|
|
160
174
|
const workerName = pattern.workerNameFn(entityId);
|
|
175
|
+
// ── HOT CACHE (0 Redis calls) ────────────────────────────────
|
|
176
|
+
if (this.hotCache.has(workerName))
|
|
177
|
+
return;
|
|
178
|
+
// ── WARM PATH (1 Redis EXISTS — O(1)) ────────────────────────
|
|
161
179
|
const workerExists = await this.workerManager.workerExists(workerName);
|
|
162
180
|
if (workerExists) {
|
|
163
|
-
this.
|
|
181
|
+
this.hotCache.add(workerName);
|
|
164
182
|
return;
|
|
165
183
|
}
|
|
166
|
-
|
|
167
|
-
//
|
|
168
|
-
|
|
184
|
+
// ── COLD PATH — Direct local spawn ───────────────────────────
|
|
185
|
+
// Atomic claim via SET NX: if this pod wins, it creates the
|
|
186
|
+
// worker locally (no spawn queue round-trip). If another pod
|
|
187
|
+
// already claimed it, we skip (that pod is creating it).
|
|
188
|
+
const claimed = await this.workerManager.claimWorkerSlot(workerName);
|
|
189
|
+
if (claimed) {
|
|
190
|
+
this.logger.log(`[QueueEvents] Claimed ${entityType}/${entityId} — creating worker locally`);
|
|
191
|
+
// Direct local spawn (same-pod, no BullMQ round-trip)
|
|
169
192
|
try {
|
|
170
|
-
|
|
171
|
-
|
|
193
|
+
if (this.onJobArrivedCallback) {
|
|
194
|
+
await this.onJobArrivedCallback(entityType, entityId, queueName);
|
|
195
|
+
}
|
|
196
|
+
else if (this.spawnQueueService) {
|
|
197
|
+
// If only spawn handler is registered, invoke it directly
|
|
198
|
+
await this.spawnQueueService.handleSpawnJobDirect?.(entityType, entityId);
|
|
199
|
+
}
|
|
200
|
+
this.hotCache.add(workerName);
|
|
172
201
|
}
|
|
173
202
|
catch (error) {
|
|
174
|
-
this.logger.error(`[QueueEvents]
|
|
203
|
+
this.logger.error(`[QueueEvents] Direct spawn failed for ${entityType}/${entityId}: ${error.message}`);
|
|
204
|
+
// Fall back to spawn queue if direct creation failed
|
|
205
|
+
if (this.spawnQueueService) {
|
|
206
|
+
await this.spawnQueueService.requestSpawn(entityType, entityId);
|
|
207
|
+
}
|
|
175
208
|
}
|
|
176
209
|
}
|
|
177
|
-
else
|
|
178
|
-
//
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
this.logger.debug(`[QueueEvents] Worker spawned directly for ${entityType}/${entityId}`);
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
this.logger.error(`[QueueEvents] Failed to spawn worker: ${error.message}`);
|
|
185
|
-
}
|
|
210
|
+
else {
|
|
211
|
+
// Another pod claimed it — it'll be created there.
|
|
212
|
+
// Add to cache after a short delay (the other pod needs time to create).
|
|
213
|
+
setTimeout(() => this.hotCache.add(workerName), 500);
|
|
186
214
|
}
|
|
187
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Evict a worker from the hot cache.
|
|
218
|
+
* Called by SpawnQueueService when idle sweep closes a worker,
|
|
219
|
+
* so the next job arrival will trigger a fresh spawn.
|
|
220
|
+
*/
|
|
221
|
+
evictFromHotCache(workerName) {
|
|
222
|
+
this.hotCache.delete(workerName);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Get the hot cache size (for diagnostics).
|
|
226
|
+
*/
|
|
227
|
+
getHotCacheSize() {
|
|
228
|
+
return this.hotCache.size;
|
|
229
|
+
}
|
|
188
230
|
/**
|
|
189
231
|
* Listen to all queues that match a pattern.
|
|
190
232
|
* Uses Redis SCAN to find existing queues and listens to them.
|
|
@@ -305,7 +347,9 @@ exports.QueueEventsManagerService = QueueEventsManagerService = QueueEventsManag
|
|
|
305
347
|
__param(0, (0, common_1.Inject)(constants_1.ATOMIC_QUEUES_REDIS)),
|
|
306
348
|
__param(1, (0, common_1.Inject)(constants_1.ATOMIC_QUEUES_CONFIG)),
|
|
307
349
|
__param(3, (0, common_1.Optional)()),
|
|
350
|
+
__param(4, (0, common_1.Optional)()),
|
|
308
351
|
__metadata("design:paramtypes", [ioredis_1.default, Object, worker_manager_1.WorkerManagerService,
|
|
352
|
+
spawn_queue_1.SpawnQueueService,
|
|
309
353
|
service_queue_1.ServiceQueueManager])
|
|
310
354
|
], QueueEventsManagerService);
|
|
311
355
|
//# sourceMappingURL=queue-events-manager.service.js.map
|