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.
Files changed (29) hide show
  1. package/README.md +279 -286
  2. package/dist/module/atomic-queues.module.d.ts.map +1 -1
  3. package/dist/module/atomic-queues.module.js +1 -0
  4. package/dist/module/atomic-queues.module.js.map +1 -1
  5. package/dist/services/index.d.ts +1 -0
  6. package/dist/services/index.d.ts.map +1 -1
  7. package/dist/services/index.js +1 -0
  8. package/dist/services/index.js.map +1 -1
  9. package/dist/services/processor-discovery/processor-discovery.service.d.ts +21 -1
  10. package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +1 -1
  11. package/dist/services/processor-discovery/processor-discovery.service.js +97 -3
  12. package/dist/services/processor-discovery/processor-discovery.service.js.map +1 -1
  13. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +23 -2
  14. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +1 -1
  15. package/dist/services/queue-events-manager/queue-events-manager.service.js +66 -22
  16. package/dist/services/queue-events-manager/queue-events-manager.service.js.map +1 -1
  17. package/dist/services/spawn-queue/index.d.ts +2 -0
  18. package/dist/services/spawn-queue/index.d.ts.map +1 -0
  19. package/dist/services/spawn-queue/index.js +18 -0
  20. package/dist/services/spawn-queue/index.js.map +1 -0
  21. package/dist/services/spawn-queue/spawn-queue.service.d.ts +119 -0
  22. package/dist/services/spawn-queue/spawn-queue.service.d.ts.map +1 -0
  23. package/dist/services/spawn-queue/spawn-queue.service.js +273 -0
  24. package/dist/services/spawn-queue/spawn-queue.service.js.map +1 -0
  25. package/dist/services/worker-manager/worker-manager.service.d.ts +18 -3
  26. package/dist/services/worker-manager/worker-manager.service.d.ts.map +1 -1
  27. package/dist/services/worker-manager/worker-manager.service.js +44 -20
  28. package/dist/services/worker-manager/worker-manager.service.js.map +1 -1
  29. 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;AAqBnE;;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;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"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"}
@@ -33,6 +33,7 @@ const CORE_SERVICES = [
33
33
  services_1.CommandDiscoveryService,
34
34
  services_1.QueueBus,
35
35
  services_1.QueueEventsManagerService,
36
+ services_1.SpawnQueueService,
36
37
  ];
37
38
  /**
38
39
  * AtomicQueuesModule
@@ -1 +1 @@
1
- {"version":3,"file":"atomic-queues.module.js","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atomic-queues.module.js","sourceRoot":"","sources":["../../src/module/atomic-queues.module.ts"],"names":[],"mappings":"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"}
@@ -11,4 +11,5 @@ export * from './processor-discovery';
11
11
  export * from './command-discovery';
12
12
  export * from './queue-bus';
13
13
  export * from './queue-events-manager';
14
+ export * from './spawn-queue';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -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":"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"}
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.Inject)(constants_1.ATOMIC_QUEUES_CONFIG)),
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, Object])
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
- constructor(redis: Redis, config: IAtomicQueuesModuleConfig, workerManager: WorkerManagerService, serviceQueueManager?: ServiceQueueManager | undefined);
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 - check if worker exists and spawn if needed.
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;AAE7E;;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;IAiBhC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAClB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IApBnD,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;gBAGjB,KAAK,EAAE,KAAK,EAEzC,MAAM,EAAE,yBAAyB,EACjC,aAAa,EAAE,oBAAoB,EACvB,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;;OAEG;YACW,gBAAgB;IA2D9B;;;;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"}
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 - check if worker exists and spawn if needed.
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.logger.debug(`[QueueEvents] Worker ${workerName} already exists, job will be processed`);
181
+ this.hotCache.add(workerName);
164
182
  return;
165
183
  }
166
- this.logger.log(`[QueueEvents] No worker for ${entityType}/${entityId}, triggering spawn`);
167
- // Trigger worker spawn through service queue for distributed coordination
168
- if (this.useServiceQueue && this.serviceQueueManager) {
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
- await this.serviceQueueManager.requestSpawnEntityWorker(entityType, entityId);
171
- this.logger.debug(`[QueueEvents] Worker spawn triggered via service queue for ${entityType}/${entityId}`);
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] Failed to trigger worker spawn: ${error.message}`);
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 if (this.onJobArrivedCallback) {
178
- // Direct spawn (single instance mode)
179
- try {
180
- await this.onJobArrivedCallback(entityType, entityId, queueName);
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