atomic-queues 1.5.2 → 1.6.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.
Files changed (216) hide show
  1. package/README.md +59 -35
  2. package/dist/decorators/constants.d.ts +17 -0
  3. package/dist/decorators/constants.d.ts.map +1 -0
  4. package/dist/decorators/constants.js +23 -0
  5. package/dist/decorators/constants.js.map +1 -0
  6. package/dist/decorators/entity.decorators.d.ts +88 -0
  7. package/dist/decorators/entity.decorators.d.ts.map +1 -0
  8. package/dist/decorators/entity.decorators.js +150 -0
  9. package/dist/decorators/entity.decorators.js.map +1 -0
  10. package/dist/decorators/index.d.ts +9 -1
  11. package/dist/decorators/index.d.ts.map +1 -1
  12. package/dist/decorators/index.js +9 -1
  13. package/dist/decorators/index.js.map +1 -1
  14. package/dist/decorators/interfaces.d.ts +130 -0
  15. package/dist/decorators/interfaces.d.ts.map +1 -0
  16. package/dist/decorators/interfaces.js +3 -0
  17. package/dist/decorators/interfaces.js.map +1 -0
  18. package/dist/decorators/job.decorators.d.ts +60 -0
  19. package/dist/decorators/job.decorators.d.ts.map +1 -0
  20. package/dist/decorators/job.decorators.js +97 -0
  21. package/dist/decorators/job.decorators.js.map +1 -0
  22. package/dist/decorators/legacy.decorators.d.ts +36 -0
  23. package/dist/decorators/legacy.decorators.d.ts.map +1 -0
  24. package/dist/decorators/legacy.decorators.js +61 -0
  25. package/dist/decorators/legacy.decorators.js.map +1 -0
  26. package/dist/decorators/metadata-readers.d.ts +31 -0
  27. package/dist/decorators/metadata-readers.d.ts.map +1 -0
  28. package/dist/decorators/metadata-readers.js +53 -0
  29. package/dist/decorators/metadata-readers.js.map +1 -0
  30. package/dist/decorators/registry.d.ts +2 -0
  31. package/dist/decorators/registry.d.ts.map +1 -0
  32. package/dist/decorators/registry.js +6 -0
  33. package/dist/decorators/registry.js.map +1 -0
  34. package/dist/decorators/scaler.decorators.d.ts +65 -0
  35. package/dist/decorators/scaler.decorators.d.ts.map +1 -0
  36. package/dist/decorators/scaler.decorators.js +103 -0
  37. package/dist/decorators/scaler.decorators.js.map +1 -0
  38. package/dist/decorators/type-guards.d.ts +18 -0
  39. package/dist/decorators/type-guards.d.ts.map +1 -0
  40. package/dist/decorators/type-guards.js +32 -0
  41. package/dist/decorators/type-guards.js.map +1 -0
  42. package/dist/decorators/utils.d.ts +20 -0
  43. package/dist/decorators/utils.d.ts.map +1 -0
  44. package/dist/decorators/utils.js +98 -0
  45. package/dist/decorators/utils.js.map +1 -0
  46. package/dist/decorators/worker.decorators.d.ts +58 -0
  47. package/dist/decorators/worker.decorators.d.ts.map +1 -0
  48. package/dist/decorators/worker.decorators.js +92 -0
  49. package/dist/decorators/worker.decorators.js.map +1 -0
  50. package/dist/domain/interfaces/config.interfaces.d.ts +188 -0
  51. package/dist/domain/interfaces/config.interfaces.d.ts.map +1 -0
  52. package/dist/domain/interfaces/config.interfaces.js +3 -0
  53. package/dist/domain/interfaces/config.interfaces.js.map +1 -0
  54. package/dist/domain/interfaces/cqrs.interfaces.d.ts +7 -0
  55. package/dist/domain/interfaces/cqrs.interfaces.d.ts.map +1 -0
  56. package/dist/domain/interfaces/cqrs.interfaces.js +3 -0
  57. package/dist/domain/interfaces/cqrs.interfaces.js.map +1 -0
  58. package/dist/domain/interfaces/event.interfaces.d.ts +71 -0
  59. package/dist/domain/interfaces/event.interfaces.d.ts.map +1 -0
  60. package/dist/domain/interfaces/event.interfaces.js +3 -0
  61. package/dist/domain/interfaces/event.interfaces.js.map +1 -0
  62. package/dist/domain/interfaces/index-tracking.interfaces.d.ts +69 -0
  63. package/dist/domain/interfaces/index-tracking.interfaces.d.ts.map +1 -0
  64. package/dist/domain/interfaces/index-tracking.interfaces.js +3 -0
  65. package/dist/domain/interfaces/index-tracking.interfaces.js.map +1 -0
  66. package/dist/domain/interfaces/index.d.ts +12 -0
  67. package/dist/domain/interfaces/index.d.ts.map +1 -0
  68. package/dist/domain/interfaces/index.js +28 -0
  69. package/dist/domain/interfaces/index.js.map +1 -0
  70. package/dist/domain/interfaces/job.interfaces.d.ts +76 -0
  71. package/dist/domain/interfaces/job.interfaces.d.ts.map +1 -0
  72. package/dist/domain/interfaces/job.interfaces.js +3 -0
  73. package/dist/domain/interfaces/job.interfaces.js.map +1 -0
  74. package/dist/domain/interfaces/lock.interfaces.d.ts +54 -0
  75. package/dist/domain/interfaces/lock.interfaces.d.ts.map +1 -0
  76. package/dist/domain/interfaces/lock.interfaces.js +3 -0
  77. package/dist/domain/interfaces/lock.interfaces.js.map +1 -0
  78. package/dist/domain/interfaces/process.interfaces.d.ts +44 -0
  79. package/dist/domain/interfaces/process.interfaces.d.ts.map +1 -0
  80. package/dist/domain/interfaces/process.interfaces.js +3 -0
  81. package/dist/domain/interfaces/process.interfaces.js.map +1 -0
  82. package/dist/domain/interfaces/queue.interfaces.d.ts +46 -0
  83. package/dist/domain/interfaces/queue.interfaces.d.ts.map +1 -0
  84. package/dist/domain/interfaces/queue.interfaces.js +3 -0
  85. package/dist/domain/interfaces/queue.interfaces.js.map +1 -0
  86. package/dist/domain/interfaces/scaling.interfaces.d.ts +62 -0
  87. package/dist/domain/interfaces/scaling.interfaces.d.ts.map +1 -0
  88. package/dist/domain/interfaces/scaling.interfaces.js +3 -0
  89. package/dist/domain/interfaces/scaling.interfaces.js.map +1 -0
  90. package/dist/domain/interfaces/utility.types.d.ts +15 -0
  91. package/dist/domain/interfaces/utility.types.d.ts.map +1 -0
  92. package/dist/domain/interfaces/utility.types.js +3 -0
  93. package/dist/domain/interfaces/utility.types.js.map +1 -0
  94. package/dist/domain/interfaces/worker.interfaces.d.ts +120 -0
  95. package/dist/domain/interfaces/worker.interfaces.d.ts.map +1 -0
  96. package/dist/domain/interfaces/worker.interfaces.js +3 -0
  97. package/dist/domain/interfaces/worker.interfaces.js.map +1 -0
  98. package/dist/module/atomic-queues.module.d.ts.map +1 -1
  99. package/dist/module/atomic-queues.module.js +4 -0
  100. package/dist/module/atomic-queues.module.js.map +1 -1
  101. package/dist/services/cron-manager/cron-manager.service.d.ts +5 -4
  102. package/dist/services/cron-manager/cron-manager.service.d.ts.map +1 -1
  103. package/dist/services/cron-manager/cron-manager.service.js +26 -57
  104. package/dist/services/cron-manager/cron-manager.service.js.map +1 -1
  105. package/dist/services/index-manager/index-manager.service.d.ts +0 -4
  106. package/dist/services/index-manager/index-manager.service.d.ts.map +1 -1
  107. package/dist/services/index-manager/index-manager.service.js +4 -16
  108. package/dist/services/index-manager/index-manager.service.js.map +1 -1
  109. package/dist/services/processor-discovery/decorator-discovery.service.d.ts +40 -0
  110. package/dist/services/processor-discovery/decorator-discovery.service.d.ts.map +1 -0
  111. package/dist/services/processor-discovery/decorator-discovery.service.js +191 -0
  112. package/dist/services/processor-discovery/decorator-discovery.service.js.map +1 -0
  113. package/dist/services/processor-discovery/index.d.ts +4 -0
  114. package/dist/services/processor-discovery/index.d.ts.map +1 -1
  115. package/dist/services/processor-discovery/index.js +4 -0
  116. package/dist/services/processor-discovery/index.js.map +1 -1
  117. package/dist/services/processor-discovery/processor-discovery.service.d.ts +28 -156
  118. package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +1 -1
  119. package/dist/services/processor-discovery/processor-discovery.service.js +121 -592
  120. package/dist/services/processor-discovery/processor-discovery.service.js.map +1 -1
  121. package/dist/services/processor-discovery/processor-registry.d.ts +58 -0
  122. package/dist/services/processor-discovery/processor-registry.d.ts.map +1 -0
  123. package/dist/services/processor-discovery/processor-registry.js +74 -0
  124. package/dist/services/processor-discovery/processor-registry.js.map +1 -0
  125. package/dist/services/processor-discovery/scaling-registration.service.d.ts +60 -0
  126. package/dist/services/processor-discovery/scaling-registration.service.d.ts.map +1 -0
  127. package/dist/services/processor-discovery/scaling-registration.service.js +261 -0
  128. package/dist/services/processor-discovery/scaling-registration.service.js.map +1 -0
  129. package/dist/services/processor-discovery/worker-factory.service.d.ts +54 -0
  130. package/dist/services/processor-discovery/worker-factory.service.d.ts.map +1 -0
  131. package/dist/services/processor-discovery/worker-factory.service.js +185 -0
  132. package/dist/services/processor-discovery/worker-factory.service.js.map +1 -0
  133. package/dist/services/queue-bus/entity-target.d.ts +58 -0
  134. package/dist/services/queue-bus/entity-target.d.ts.map +1 -0
  135. package/dist/services/queue-bus/entity-target.js +109 -0
  136. package/dist/services/queue-bus/entity-target.js.map +1 -0
  137. package/dist/services/queue-bus/index.d.ts +4 -0
  138. package/dist/services/queue-bus/index.d.ts.map +1 -1
  139. package/dist/services/queue-bus/index.js +4 -0
  140. package/dist/services/queue-bus/index.js.map +1 -1
  141. package/dist/services/queue-bus/queue-bus.service.d.ts +9 -145
  142. package/dist/services/queue-bus/queue-bus.service.d.ts.map +1 -1
  143. package/dist/services/queue-bus/queue-bus.service.js +23 -311
  144. package/dist/services/queue-bus/queue-bus.service.js.map +1 -1
  145. package/dist/services/queue-bus/queue-bus.types.d.ts +40 -0
  146. package/dist/services/queue-bus/queue-bus.types.d.ts.map +1 -0
  147. package/dist/services/queue-bus/queue-bus.types.js +3 -0
  148. package/dist/services/queue-bus/queue-bus.types.js.map +1 -0
  149. package/dist/services/queue-bus/queue-bus.utils.d.ts +34 -0
  150. package/dist/services/queue-bus/queue-bus.utils.d.ts.map +1 -0
  151. package/dist/services/queue-bus/queue-bus.utils.js +82 -0
  152. package/dist/services/queue-bus/queue-bus.utils.js.map +1 -0
  153. package/dist/services/queue-bus/queue-target.d.ts +61 -0
  154. package/dist/services/queue-bus/queue-target.d.ts.map +1 -0
  155. package/dist/services/queue-bus/queue-target.js +123 -0
  156. package/dist/services/queue-bus/queue-target.js.map +1 -0
  157. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts +0 -4
  158. package/dist/services/queue-events-manager/queue-events-manager.service.d.ts.map +1 -1
  159. package/dist/services/queue-events-manager/queue-events-manager.service.js +3 -15
  160. package/dist/services/queue-events-manager/queue-events-manager.service.js.map +1 -1
  161. package/dist/services/resource-lock/resource-lock.service.d.ts +0 -4
  162. package/dist/services/resource-lock/resource-lock.service.d.ts.map +1 -1
  163. package/dist/services/resource-lock/resource-lock.service.js +4 -16
  164. package/dist/services/resource-lock/resource-lock.service.js.map +1 -1
  165. package/dist/services/service-queue/index.d.ts +1 -0
  166. package/dist/services/service-queue/index.d.ts.map +1 -1
  167. package/dist/services/service-queue/index.js +1 -0
  168. package/dist/services/service-queue/index.js.map +1 -1
  169. package/dist/services/service-queue/service-queue.service.d.ts +2 -35
  170. package/dist/services/service-queue/service-queue.service.d.ts.map +1 -1
  171. package/dist/services/service-queue/service-queue.service.js +17 -49
  172. package/dist/services/service-queue/service-queue.service.js.map +1 -1
  173. package/dist/services/service-queue/service-queue.types.d.ts +32 -0
  174. package/dist/services/service-queue/service-queue.types.d.ts.map +1 -0
  175. package/dist/services/service-queue/service-queue.types.js +27 -0
  176. package/dist/services/service-queue/service-queue.types.js.map +1 -0
  177. package/dist/services/worker-manager/worker-manager.service.d.ts.map +1 -1
  178. package/dist/services/worker-manager/worker-manager.service.js +2 -1
  179. package/dist/services/worker-manager/worker-manager.service.js.map +1 -1
  180. package/dist/utils/async.utils.d.ts +51 -0
  181. package/dist/utils/async.utils.d.ts.map +1 -0
  182. package/dist/utils/async.utils.js +87 -0
  183. package/dist/utils/async.utils.js.map +1 -0
  184. package/dist/utils/helpers.d.ts +4 -123
  185. package/dist/utils/helpers.d.ts.map +1 -1
  186. package/dist/utils/helpers.js +18 -226
  187. package/dist/utils/helpers.js.map +1 -1
  188. package/dist/utils/index.d.ts +1 -0
  189. package/dist/utils/index.d.ts.map +1 -1
  190. package/dist/utils/index.js +1 -0
  191. package/dist/utils/index.js.map +1 -1
  192. package/dist/utils/job.utils.d.ts +50 -0
  193. package/dist/utils/job.utils.d.ts.map +1 -0
  194. package/dist/utils/job.utils.js +89 -0
  195. package/dist/utils/job.utils.js.map +1 -0
  196. package/dist/utils/naming.utils.d.ts +21 -0
  197. package/dist/utils/naming.utils.d.ts.map +1 -0
  198. package/dist/utils/naming.utils.js +38 -0
  199. package/dist/utils/naming.utils.js.map +1 -0
  200. package/dist/utils/rate-limit.utils.d.ts +9 -0
  201. package/dist/utils/rate-limit.utils.d.ts.map +1 -0
  202. package/dist/utils/rate-limit.utils.js +30 -0
  203. package/dist/utils/rate-limit.utils.js.map +1 -0
  204. package/dist/utils/redis.utils.d.ts +3 -0
  205. package/dist/utils/redis.utils.d.ts.map +1 -0
  206. package/dist/utils/redis.utils.js +14 -0
  207. package/dist/utils/redis.utils.js.map +1 -0
  208. package/package.json +17 -17
  209. package/dist/decorators/decorators.d.ts +0 -489
  210. package/dist/decorators/decorators.d.ts.map +0 -1
  211. package/dist/decorators/decorators.js +0 -680
  212. package/dist/decorators/decorators.js.map +0 -1
  213. package/dist/domain/interfaces.d.ts +0 -748
  214. package/dist/domain/interfaces.d.ts.map +0 -1
  215. package/dist/domain/interfaces.js +0 -19
  216. package/dist/domain/interfaces.js.map +0 -1
@@ -1,66 +1,24 @@
1
1
  import { OnModuleInit, Type } from '@nestjs/common';
2
- import { ModuleRef, DiscoveryService, MetadataScanner } from '@nestjs/core';
3
- import { WorkerProcessorOptions, EntityScalerOptions } from '../../decorators';
4
- import { WorkerManagerService } from '../worker-manager';
5
- import { QueueManagerService } from '../queue-manager';
6
- import { CronManagerService } from '../cron-manager';
2
+ import { ModuleRef, DiscoveryService } from '@nestjs/core';
3
+ import { ICommandBus, IQueryBus, IAtomicQueuesModuleConfig } from '../../domain';
7
4
  import { CommandDiscoveryService } from '../command-discovery';
8
- import { ServiceQueueManager } from '../service-queue';
9
- import { QueueEventsManagerService } from '../queue-events-manager';
10
- import { SpawnQueueService } from '../spawn-queue';
11
- import { IAtomicQueuesModuleConfig } from '../../domain';
12
- interface ICommandBus {
13
- execute<T>(command: T): Promise<any>;
14
- }
15
- interface IQueryBus {
16
- execute<T>(query: T): Promise<any>;
17
- }
18
- /**
19
- * Registered processor info
20
- */
21
- export interface RegisteredProcessor {
22
- entityType: string;
23
- processorInstance: any;
24
- options: WorkerProcessorOptions;
25
- jobHandlers: Map<string, {
26
- method: string;
27
- isWildcard: boolean;
28
- }>;
29
- wildcardHandler?: {
30
- method: string;
31
- };
32
- queueNameFn: (entityId: string) => string;
33
- workerNameFn: (entityId: string) => string;
34
- }
35
- /**
36
- * Registered scaler info
37
- */
38
- export interface RegisteredScaler {
39
- entityType: string;
40
- scalerInstance: any;
41
- options: EntityScalerOptions;
42
- methods: {
43
- getActiveEntities?: string;
44
- getDesiredWorkerCount?: string;
45
- onSpawnWorker?: string;
46
- onTerminateWorker?: string;
47
- };
48
- }
5
+ import { ProcessorRegistry, RegisteredProcessor, RegisteredScaler } from './processor-registry';
6
+ import { DecoratorDiscoveryService } from './decorator-discovery.service';
7
+ import { WorkerFactoryService } from './worker-factory.service';
8
+ import { ScalingRegistrationService } from './scaling-registration.service';
49
9
  /**
50
10
  * ProcessorDiscoveryService
51
11
  *
52
- * Automatically discovers and registers classes decorated with:
53
- * - @WorkerProcessor - For job processing
54
- * - @EntityScaler - For entity scaling logic
12
+ * Orchestrator that coordinates discovery, registration, worker creation,
13
+ * and scaling setup. Delegates to focused services:
55
14
  *
56
- * This service bridges the decorator-based API with the core services:
57
- * - WorkerManagerService - For worker lifecycle
58
- * - QueueManagerService - For queue management
59
- * - CronManagerService - For automatic scaling
15
+ * - ProcessorRegistry: state management for processors/scalers/workers
16
+ * - DecoratorDiscoveryService: NestJS provider scanning and registration
17
+ * - WorkerFactoryService: worker creation and job processing
18
+ * - ScalingRegistrationService: scaling/spawn registration logic
60
19
  *
61
20
  * @example
62
21
  * ```typescript
63
- * // Classes are auto-discovered from module providers
64
22
  * @WorkerProcessor({ entityType: 'table' })
65
23
  * @Injectable()
66
24
  * export class TableProcessor {
@@ -78,23 +36,16 @@ export interface RegisteredScaler {
78
36
  */
79
37
  export declare class ProcessorDiscoveryService implements OnModuleInit {
80
38
  private readonly discoveryService;
81
- private readonly metadataScanner;
82
39
  private readonly moduleRef;
83
- private readonly workerManager;
84
- private readonly queueManager;
85
- private readonly cronManager;
40
+ private readonly registry;
41
+ private readonly decoratorDiscovery;
42
+ private readonly workerFactory;
43
+ private readonly scalingRegistration;
86
44
  private readonly commandDiscovery;
87
- private readonly serviceQueueManager;
88
- private readonly queueEventsManager;
89
- private readonly spawnQueueService;
90
45
  private readonly config;
91
46
  private readonly logger;
92
- private readonly processors;
93
- private readonly scalers;
94
- private readonly activeWorkers;
95
- private commandBus;
96
- private queryBus;
97
- constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, moduleRef: ModuleRef, workerManager: WorkerManagerService, queueManager: QueueManagerService, cronManager: CronManagerService, commandDiscovery: CommandDiscoveryService, serviceQueueManager: ServiceQueueManager, queueEventsManager: QueueEventsManagerService, spawnQueueService: SpawnQueueService, config: IAtomicQueuesModuleConfig);
47
+ constructor(discoveryService: DiscoveryService, moduleRef: ModuleRef, registry: ProcessorRegistry, decoratorDiscovery: DecoratorDiscoveryService, workerFactory: WorkerFactoryService, scalingRegistration: ScalingRegistrationService, commandDiscovery: CommandDiscoveryService, config: IAtomicQueuesModuleConfig);
48
+ onModuleInit(): Promise<void>;
98
49
  /**
99
50
  * Set the CommandBus for executing commands from QueueBus registry
100
51
  */
@@ -103,124 +54,45 @@ export declare class ProcessorDiscoveryService implements OnModuleInit {
103
54
  * Set the QueryBus for executing queries from QueueBus registry
104
55
  */
105
56
  setQueryBus(queryBus: IQueryBus): void;
106
- onModuleInit(): Promise<void>;
107
57
  /**
108
58
  * 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
59
  */
112
60
  private autoWireCqrsBuses;
113
- /**
114
- * Register entity types from module config `entities` option.
115
- * This creates virtual processors for entities that don't have explicit @WorkerProcessor classes.
116
- *
117
- * Benefits:
118
- * - No boilerplate @WorkerProcessor class needed
119
- * - Just configure in module and decorate commands with @QueueEntity
120
- * - Workers auto-spawn on job arrival and terminate when idle
121
- */
122
- private registerEntitiesFromConfig;
123
- /**
124
- * Register processors that don't have an EntityScaler (scalerless mode).
125
- * These processors will auto-spawn workers when jobs arrive and
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.
133
- */
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;
141
- /**
142
- * Setup QueueEvents listening for job arrivals.
143
- * This enables automatic worker spawning when jobs are added.
144
- */
145
- private setupQueueEventsListening;
146
- /**
147
- * Register spawn worker handler with ServiceQueueManager
148
- * This allows workers to be spawned on-demand via the service queue.
149
- * Uses the same logic as scaling cycle - calls scaler's @OnSpawnWorker first,
150
- * then auto-creates via processor if registered.
151
- */
152
- private registerSpawnWorkerHandler;
153
61
  /**
154
62
  * Auto-discover and register commands/queries from @nestjs/cqrs handlers
155
63
  */
156
64
  private autoRegisterCommandsFromCqrs;
157
65
  /**
158
- * Discover all @WorkerProcessor decorated classes
66
+ * Get registered processor for an entity type
159
67
  */
160
- private discoverProcessors;
68
+ getProcessor(entityType: string): RegisteredProcessor | undefined;
161
69
  /**
162
- * Discover all @EntityScaler decorated classes
70
+ * Get registered scaler for an entity type
163
71
  */
164
- private discoverScalers;
72
+ getScaler(entityType: string): RegisteredScaler | undefined;
165
73
  /**
166
- * Register a processor from discovered metadata
74
+ * Get all registered entity types
167
75
  */
168
- private registerProcessor;
76
+ getRegisteredEntityTypes(): string[];
169
77
  /**
170
- * Register a scaler from discovered metadata
78
+ * Check if a worker exists for an entity
171
79
  */
172
- private registerScaler;
80
+ hasActiveWorker(entityType: string, entityId: string): boolean;
173
81
  /**
174
- * Register scalers with CronManager for automatic scaling
82
+ * Get all active workers for an entity type
175
83
  */
176
- private registerScalersWithCronManager;
84
+ getActiveWorkers(entityType: string): string[];
177
85
  /**
178
86
  * Create a worker for an entity using the registered processor
179
87
  */
180
88
  createWorkerForEntity(entityType: string, entityId: string): Promise<void>;
181
- /**
182
- * Process a job using the registered handlers
183
- *
184
- * Priority order:
185
- * 1. Explicit @JobHandler on the processor class (if instance exists)
186
- * 2. Auto-routing via @JobCommand/@JobQuery decorated classes
187
- * 3. QueueBus registry lookup (class name as job name)
188
- * 4. Wildcard @JobHandler('*') on the processor class (if instance exists)
189
- */
190
- private processJob;
191
- /**
192
- * Execute a command/query from QueueBus registry
193
- */
194
- private executeFromRegistry;
195
89
  /**
196
90
  * Manually register a processor class
197
- * Use this when auto-discovery is not available or for dynamic registration
198
91
  */
199
92
  registerProcessorClass<T>(processorClass: Type<T>, instance?: T): Promise<void>;
200
93
  /**
201
94
  * Manually register a scaler class
202
95
  */
203
96
  registerScalerClass<T>(scalerClass: Type<T>, instance?: T): Promise<void>;
204
- /**
205
- * Get registered processor for an entity type
206
- */
207
- getProcessor(entityType: string): RegisteredProcessor | undefined;
208
- /**
209
- * Get registered scaler for an entity type
210
- */
211
- getScaler(entityType: string): RegisteredScaler | undefined;
212
- /**
213
- * Get all registered entity types
214
- */
215
- getRegisteredEntityTypes(): string[];
216
- /**
217
- * Check if a worker exists for an entity
218
- */
219
- hasActiveWorker(entityType: string, entityId: string): boolean;
220
- /**
221
- * Get all active workers for an entity type
222
- */
223
- getActiveWorkers(entityType: string): string[];
224
97
  }
225
- export {};
226
98
  //# sourceMappingURL=processor-discovery.service.d.ts.map
@@ -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":"AAAA,OAAO,EAGL,YAAY,EACZ,IAAI,EAGL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,yBAA0B,YAAW,YAAY;IAI9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAE7C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;gBAGtC,gBAAgB,EAAE,gBAAgB,EAC9C,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,kBAAkB,EAAE,yBAAyB,EAC7C,aAAa,EAAE,oBAAoB,EACnC,mBAAmB,EAAE,0BAA0B,EACnC,gBAAgB,EAAE,uBAAuB,EAErD,MAAM,EAAE,yBAAyB;IAG9C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BnC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAO5C;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAOtC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAcpC;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIjE;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI3D;;OAEG;IACH,wBAAwB,IAAI,MAAM,EAAE;IAIpC;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9D;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAQ9C;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,sBAAsB,CAAC,CAAC,EAC5B,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EACvB,QAAQ,CAAC,EAAE,CAAC,GACX,OAAO,CAAC,IAAI,CAAC;IAahB;;OAEG;IACG,mBAAmB,CAAC,CAAC,EACzB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EACpB,QAAQ,CAAC,EAAE,CAAC,GACX,OAAO,CAAC,IAAI,CAAC;CAYjB"}