pp-command-bus 1.0.3 → 1.2.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 (53) hide show
  1. package/dist/command-bus/command-bus.spec.js +41 -9
  2. package/dist/command-bus/command-bus.spec.js.map +1 -1
  3. package/dist/command-bus/config/auto-config-optimizer.d.ts +35 -0
  4. package/dist/command-bus/config/auto-config-optimizer.js +52 -0
  5. package/dist/command-bus/config/auto-config-optimizer.js.map +1 -0
  6. package/dist/command-bus/config/auto-config-optimizer.spec.d.ts +1 -0
  7. package/dist/command-bus/config/auto-config-optimizer.spec.js +42 -0
  8. package/dist/command-bus/config/auto-config-optimizer.spec.js.map +1 -0
  9. package/dist/command-bus/config/command-bus-config.d.ts +6 -0
  10. package/dist/command-bus/config/command-bus-config.js +33 -6
  11. package/dist/command-bus/config/command-bus-config.js.map +1 -1
  12. package/dist/command-bus/config/command-bus-config.spec.js +62 -2
  13. package/dist/command-bus/config/command-bus-config.spec.js.map +1 -1
  14. package/dist/command-bus/index.d.ts +2 -2
  15. package/dist/command-bus/index.js +26 -15
  16. package/dist/command-bus/index.js.map +1 -1
  17. package/dist/command-bus/job/job-processor.d.ts +8 -10
  18. package/dist/command-bus/job/job-processor.js +23 -113
  19. package/dist/command-bus/job/job-processor.js.map +1 -1
  20. package/dist/command-bus/job/job-processor.spec.js +17 -107
  21. package/dist/command-bus/job/job-processor.spec.js.map +1 -1
  22. package/dist/command-bus/rpc/rpc-coordinator.d.ts +39 -16
  23. package/dist/command-bus/rpc/rpc-coordinator.js +178 -93
  24. package/dist/command-bus/rpc/rpc-coordinator.js.map +1 -1
  25. package/dist/command-bus/rpc/rpc-coordinator.spec.js +64 -223
  26. package/dist/command-bus/rpc/rpc-coordinator.spec.js.map +1 -1
  27. package/dist/command-bus/types/index.d.ts +5 -4
  28. package/dist/command-bus/worker/index.d.ts +6 -1
  29. package/dist/command-bus/worker/index.js +8 -2
  30. package/dist/command-bus/worker/index.js.map +1 -1
  31. package/dist/command-bus/worker/worker-benchmark.d.ts +71 -0
  32. package/dist/command-bus/worker/worker-benchmark.js +203 -0
  33. package/dist/command-bus/worker/worker-benchmark.js.map +1 -0
  34. package/dist/command-bus/worker/worker-benchmark.spec.d.ts +1 -0
  35. package/dist/command-bus/worker/worker-benchmark.spec.js +310 -0
  36. package/dist/command-bus/worker/worker-benchmark.spec.js.map +1 -0
  37. package/dist/command-bus/worker/worker-metrics-collector.d.ts +98 -0
  38. package/dist/command-bus/worker/worker-metrics-collector.js +242 -0
  39. package/dist/command-bus/worker/worker-metrics-collector.js.map +1 -0
  40. package/dist/command-bus/worker/worker-orchestrator.d.ts +29 -4
  41. package/dist/command-bus/worker/worker-orchestrator.js +193 -27
  42. package/dist/command-bus/worker/worker-orchestrator.js.map +1 -1
  43. package/dist/command-bus/worker/worker-orchestrator.spec.js +477 -52
  44. package/dist/command-bus/worker/worker-orchestrator.spec.js.map +1 -1
  45. package/dist/examples/auto-config.demo.d.ts +9 -0
  46. package/dist/examples/auto-config.demo.js +106 -0
  47. package/dist/examples/auto-config.demo.js.map +1 -0
  48. package/dist/examples/rpc-throughput.demo.d.ts +5 -0
  49. package/dist/examples/rpc-throughput.demo.js +326 -0
  50. package/dist/examples/rpc-throughput.demo.js.map +1 -0
  51. package/dist/pp-command-bus-1.2.0.tgz +0 -0
  52. package/package.json +3 -2
  53. package/dist/pp-command-bus-1.0.3.tgz +0 -0
@@ -20,9 +20,23 @@ const command_1 = __importDefault(require("./command"));
20
20
  jest.mock('bullmq');
21
21
  // Mock ioredis
22
22
  jest.mock('ioredis', () => {
23
+ const mockSubscriber = {
24
+ subscribe: jest.fn().mockResolvedValue(undefined),
25
+ unsubscribe: jest.fn().mockResolvedValue(undefined),
26
+ on: jest.fn().mockReturnThis(),
27
+ off: jest.fn().mockReturnThis(),
28
+ removeAllListeners: jest.fn().mockReturnThis(),
29
+ quit: jest.fn().mockResolvedValue(undefined),
30
+ };
23
31
  return {
24
32
  Redis: jest.fn().mockImplementation(() => ({
25
33
  quit: jest.fn().mockResolvedValue(undefined),
34
+ ping: jest.fn().mockResolvedValue('PONG'),
35
+ set: jest.fn().mockResolvedValue('OK'),
36
+ get: jest.fn().mockResolvedValue('test-value'),
37
+ del: jest.fn().mockResolvedValue(1),
38
+ duplicate: jest.fn().mockReturnValue(mockSubscriber),
39
+ publish: jest.fn().mockResolvedValue(1),
26
40
  })),
27
41
  };
28
42
  });
@@ -49,6 +63,11 @@ class CalculateCommand extends command_1.default {
49
63
  this.operation = operation;
50
64
  }
51
65
  }
66
+ /**
67
+ * Helper: czeka aż worker zostanie zarejestrowany asynchronicznie
68
+ * Potrzebne bo registerWorker() uruchamia benchmark przed utworzeniem workera
69
+ */
70
+ const waitForWorkerRegistration = () => new Promise((resolve) => setTimeout(resolve, 150));
52
71
  describe('CommandBus', () => {
53
72
  let commandBus;
54
73
  let config;
@@ -80,9 +99,13 @@ describe('CommandBus', () => {
80
99
  commandBus = new index_1.default(config);
81
100
  });
82
101
  afterEach(() => __awaiter(void 0, void 0, void 0, function* () {
102
+ // Wyczyść wszystkie pending timery PRZED zamknięciem
103
+ jest.clearAllTimers();
83
104
  // Dodaj timeout aby uniknąć unhandled rejections podczas close()
84
105
  try {
85
106
  yield commandBus.close();
107
+ // Zwiększyć grace period z 100ms do 200ms dla pełnego zamknięcia
108
+ yield new Promise((resolve) => setTimeout(resolve, 200));
86
109
  }
87
110
  catch (error) {
88
111
  // Ignoruj błędy związane z zamykaniem podczas testów RPC
@@ -90,6 +113,8 @@ describe('CommandBus', () => {
90
113
  throw error;
91
114
  }
92
115
  }
116
+ // Ostateczne czyszczenie pending operations
117
+ yield new Promise((resolve) => setImmediate(resolve));
93
118
  }));
94
119
  describe('dispatch', () => {
95
120
  it('powinno dodać komendę do kolejki', () => __awaiter(void 0, void 0, void 0, function* () {
@@ -153,11 +178,12 @@ describe('CommandBus', () => {
153
178
  // Given
154
179
  const handler = jest.fn();
155
180
  // When
156
- yield commandBus.handle(TestCommand, handler);
181
+ commandBus.handle(TestCommand, handler);
182
+ yield waitForWorkerRegistration();
157
183
  // Then
158
184
  expect(bullmq_1.Worker).toHaveBeenCalledWith('{TestCommand}', expect.any(Function), expect.objectContaining({
159
185
  connection: expect.any(Object),
160
- concurrency: 5,
186
+ concurrency: expect.any(Number), // Wartość ustalana przez benchmark
161
187
  }));
162
188
  }));
163
189
  it('powinno przetworzyć komendę przez handler', () => __awaiter(void 0, void 0, void 0, function* () {
@@ -170,7 +196,8 @@ describe('CommandBus', () => {
170
196
  return mockWorker;
171
197
  });
172
198
  // When
173
- yield commandBus.handle(TestCommand, handler);
199
+ commandBus.handle(TestCommand, handler);
200
+ yield waitForWorkerRegistration();
174
201
  // Symulacja przetworzenia zadania
175
202
  yield workerProcessor({
176
203
  data: command,
@@ -199,7 +226,8 @@ describe('CommandBus', () => {
199
226
  return mockWorker;
200
227
  });
201
228
  // Zarejestruj handler normalnie
202
- yield commandBus.handle(TestCommand, handler);
229
+ commandBus.handle(TestCommand, handler);
230
+ yield waitForWorkerRegistration();
203
231
  // Następnie usuń handler z internal commandHandlers aby symulować brak handlera
204
232
  const commandHandlers = commandBus.commandHandlers;
205
233
  delete commandHandlers['TestCommand'];
@@ -216,7 +244,8 @@ describe('CommandBus', () => {
216
244
  // Given
217
245
  const command = new TestCommand('test');
218
246
  yield commandBus.dispatch(command);
219
- yield commandBus.handle(TestCommand, jest.fn());
247
+ commandBus.handle(TestCommand, jest.fn());
248
+ yield waitForWorkerRegistration();
220
249
  // When
221
250
  yield commandBus.close();
222
251
  // Then
@@ -244,7 +273,8 @@ describe('CommandBus', () => {
244
273
  return mockWorker;
245
274
  });
246
275
  // When
247
- yield commandBus.handle(TestCommand, handler);
276
+ commandBus.handle(TestCommand, handler);
277
+ yield waitForWorkerRegistration();
248
278
  const command = new TestCommand('test');
249
279
  expect(workerProcessor).not.toBeNull();
250
280
  const processor = workerProcessor;
@@ -281,14 +311,15 @@ describe('CommandBus', () => {
281
311
  id: 'test-job-id-123',
282
312
  opts: {},
283
313
  });
284
- yield commandBus.handle(CalculateCommand, handler);
314
+ commandBus.handle(CalculateCommand, handler);
315
+ yield waitForWorkerRegistration();
285
316
  // When
286
317
  const callPromise = commandBus.call(command, 100);
287
318
  // Then - replyQueue zawiera correlationId (unikalny per wywołanie)
288
319
  expect(mockQueue.add).toHaveBeenCalledWith('CalculateCommand', expect.objectContaining({
289
320
  __rpcMetadata: expect.objectContaining({
290
321
  correlationId: command.__id,
291
- replyQueue: `rpc-reply-${command.__id}`, // Unikalna kolejka per wywołanie
322
+ responseChannel: `rpc:response:${command.__id}`, // Unikalny kanał Pub/Sub per wywołanie
292
323
  timestamp: expect.any(Number),
293
324
  }),
294
325
  }), expect.any(Object));
@@ -308,7 +339,8 @@ describe('CommandBus', () => {
308
339
  // Given
309
340
  const handler = jest.fn().mockResolvedValue(42);
310
341
  const command = new CalculateCommand(5, 3, 'add');
311
- yield commandBus.handle(CalculateCommand, handler);
342
+ commandBus.handle(CalculateCommand, handler);
343
+ yield waitForWorkerRegistration();
312
344
  // When & Then
313
345
  yield expect(commandBus.call(command, 100)) // 100ms timeout
314
346
  .rejects.toThrow('RPC timeout for command CalculateCommand');
@@ -1 +1 @@
1
- {"version":3,"file":"command-bus.spec.js","sourceRoot":"","sources":["../../src/command-bus/command-bus.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-bus.spec.js","sourceRoot":"","sources":["../../src/command-bus/command-bus.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Informacje o systemie
3
+ */
4
+ export interface SystemInfo {
5
+ /**
6
+ * Liczba dostępnych CPU (cores)
7
+ */
8
+ cpuCount: number;
9
+ /**
10
+ * Całkowita pamięć RAM w GB
11
+ */
12
+ totalMemoryGB: number;
13
+ /**
14
+ * Dostępna pamięć RAM w GB
15
+ */
16
+ freeMemoryGB: number;
17
+ }
18
+ /**
19
+ * Auto-optymalizator konfiguracji CommandBus
20
+ * Wykrywa zasoby systemowe i oblicza optymalne ustawienia concurrency
21
+ */
22
+ export default class AutoConfigOptimizer {
23
+ /**
24
+ * Oblicza optymalny concurrency na podstawie zasobów systemowych
25
+ * Używa heurystyki zakładającej I/O-heavy workload (Redis/BullMQ)
26
+ *
27
+ * @returns Rekomendowany concurrency
28
+ */
29
+ static calculateOptimalConcurrency(): number;
30
+ /**
31
+ * Zwraca informacje o systemie
32
+ * @returns Informacje systemowe
33
+ */
34
+ static getSystemInfo(): SystemInfo;
35
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const os_1 = require("os");
4
+ /**
5
+ * Auto-optymalizator konfiguracji CommandBus
6
+ * Wykrywa zasoby systemowe i oblicza optymalne ustawienia concurrency
7
+ */
8
+ class AutoConfigOptimizer {
9
+ /**
10
+ * Oblicza optymalny concurrency na podstawie zasobów systemowych
11
+ * Używa heurystyki zakładającej I/O-heavy workload (Redis/BullMQ)
12
+ *
13
+ * @returns Rekomendowany concurrency
14
+ */
15
+ static calculateOptimalConcurrency() {
16
+ const systemInfo = AutoConfigOptimizer.getSystemInfo();
17
+ const { cpuCount, freeMemoryGB } = systemInfo;
18
+ // Bazowy concurrency dla I/O-heavy workload (Redis/BullMQ)
19
+ // Worker spędza większość czasu czekając na Redis, więc możemy mieć więcej workerów niż CPU
20
+ let baseConcurrency = cpuCount * 50;
21
+ // Korekta dla dostępnej pamięci RAM
22
+ if (freeMemoryGB < 2) {
23
+ // Bardzo mało RAM (<2GB) - agresywnie zmniejsz
24
+ baseConcurrency *= 0.3;
25
+ }
26
+ else if (freeMemoryGB < 4) {
27
+ // Mało RAM (<4GB) - zmniejsz
28
+ baseConcurrency *= 0.5;
29
+ }
30
+ else if (freeMemoryGB >= 16) {
31
+ // Dużo RAM (>=16GB) - zwiększ
32
+ baseConcurrency *= 1.2;
33
+ }
34
+ // Zapewnij sensowne granice: min 10, max 2000
35
+ return Math.max(10, Math.min(2000, Math.round(baseConcurrency)));
36
+ }
37
+ /**
38
+ * Zwraca informacje o systemie
39
+ * @returns Informacje systemowe
40
+ */
41
+ static getSystemInfo() {
42
+ const totalMemoryBytes = (0, os_1.totalmem)();
43
+ const freeMemoryBytes = (0, os_1.freemem)();
44
+ return {
45
+ cpuCount: (0, os_1.availableParallelism)(),
46
+ totalMemoryGB: Math.round((totalMemoryBytes / (1024 * 1024 * 1024)) * 10) / 10,
47
+ freeMemoryGB: Math.round((freeMemoryBytes / (1024 * 1024 * 1024)) * 10) / 10,
48
+ };
49
+ }
50
+ }
51
+ exports.default = AutoConfigOptimizer;
52
+ //# sourceMappingURL=auto-config-optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-config-optimizer.js","sourceRoot":"","sources":["../../../src/command-bus/config/auto-config-optimizer.ts"],"names":[],"mappings":";;AAAA,2BAA6D;AAsB7D;;;GAGG;AACH,MAAqB,mBAAmB;IACtC;;;;;OAKG;IACI,MAAM,CAAC,2BAA2B;QACvC,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QAE9C,2DAA2D;QAC3D,4FAA4F;QAC5F,IAAI,eAAe,GAAG,QAAQ,GAAG,EAAE,CAAC;QAEpC,oCAAoC;QACpC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,+CAA+C;YAC/C,eAAe,IAAI,GAAG,CAAC;QACzB,CAAC;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,6BAA6B;YAC7B,eAAe,IAAI,GAAG,CAAC;QACzB,CAAC;aAAM,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;YAC9B,8BAA8B;YAC9B,eAAe,IAAI,GAAG,CAAC;QACzB,CAAC;QAED,8CAA8C;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,aAAa;QACzB,MAAM,gBAAgB,GAAG,IAAA,aAAQ,GAAE,CAAC;QACpC,MAAM,eAAe,GAAG,IAAA,YAAO,GAAE,CAAC;QAElC,OAAO;YACL,QAAQ,EAAE,IAAA,yBAAoB,GAAE;YAChC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;YAC9E,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;SAC7E,CAAC;IACJ,CAAC;CACF;AA7CD,sCA6CC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const auto_config_optimizer_1 = __importDefault(require("./auto-config-optimizer"));
7
+ describe('AutoConfigOptimizer', () => {
8
+ describe('calculateOptimalConcurrency', () => {
9
+ it('powinien zwrócić sensowną wartość concurrency', () => {
10
+ const concurrency = auto_config_optimizer_1.default.calculateOptimalConcurrency();
11
+ expect(concurrency).toBeGreaterThan(0);
12
+ // Sprawdź czy jest w sensownym zakresie
13
+ expect(concurrency).toBeGreaterThanOrEqual(10);
14
+ expect(concurrency).toBeLessThanOrEqual(2000);
15
+ });
16
+ it('powinien być wartością całkowitą', () => {
17
+ const concurrency = auto_config_optimizer_1.default.calculateOptimalConcurrency();
18
+ expect(Number.isInteger(concurrency)).toBe(true);
19
+ });
20
+ });
21
+ describe('getSystemInfo', () => {
22
+ it('powinien zwrócić informacje o systemie', () => {
23
+ const systemInfo = auto_config_optimizer_1.default.getSystemInfo();
24
+ expect(systemInfo).toHaveProperty('cpuCount');
25
+ expect(systemInfo).toHaveProperty('totalMemoryGB');
26
+ expect(systemInfo).toHaveProperty('freeMemoryGB');
27
+ expect(systemInfo.cpuCount).toBeGreaterThan(0);
28
+ expect(systemInfo.totalMemoryGB).toBeGreaterThan(0);
29
+ expect(systemInfo.freeMemoryGB).toBeGreaterThan(0);
30
+ expect(systemInfo.freeMemoryGB).toBeLessThanOrEqual(systemInfo.totalMemoryGB);
31
+ });
32
+ it('powinien zaokrąglić wartości pamięci do 1 miejsca po przecinku', () => {
33
+ const systemInfo = auto_config_optimizer_1.default.getSystemInfo();
34
+ // Sprawdź czy wartości są zaokrąglone do 1 miejsca po przecinku
35
+ const totalDecimals = (systemInfo.totalMemoryGB.toString().split('.')[1] || '').length;
36
+ const freeDecimals = (systemInfo.freeMemoryGB.toString().split('.')[1] || '').length;
37
+ expect(totalDecimals).toBeLessThanOrEqual(1);
38
+ expect(freeDecimals).toBeLessThanOrEqual(1);
39
+ });
40
+ });
41
+ });
42
+ //# sourceMappingURL=auto-config-optimizer.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-config-optimizer.spec.js","sourceRoot":"","sources":["../../../src/command-bus/config/auto-config-optimizer.spec.ts"],"names":[],"mappings":";;;;;AAAA,oFAA0D;AAG1D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,WAAW,GAAG,+BAAmB,CAAC,2BAA2B,EAAE,CAAC;YAEtE,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACvC,wCAAwC;YACxC,MAAM,CAAC,WAAW,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,WAAW,GAAG,+BAAmB,CAAC,2BAA2B,EAAE,CAAC;YAEtE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,UAAU,GAAe,+BAAmB,CAAC,aAAa,EAAE,CAAC;YAEnE,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAElD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,UAAU,GAAG,+BAAmB,CAAC,aAAa,EAAE,CAAC;YAEvD,gEAAgE;YAChE,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACvF,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAErF,MAAM,CAAC,aAAa,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -23,6 +23,12 @@ export default class CommandBusConfig extends BaseConfig {
23
23
  * Ścieżka do katalogu logów komend
24
24
  */
25
25
  commandLog: string;
26
+ /**
27
+ * Włącz auto-optymalizację concurrency na podstawie zasobów systemowych (CPU, RAM)
28
+ * Używa heurystyki zakładającej I/O-heavy workload (Redis/BullMQ)
29
+ * @default true
30
+ */
31
+ autoOptimize: boolean;
26
32
  constructor(params?: Partial<CommandBusConfig>);
27
33
  /**
28
34
  * Waliduje konfigurację specyficzną dla CommandBus
@@ -4,20 +4,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const base_config_1 = __importDefault(require("../../shared/config/base-config"));
7
+ const auto_config_optimizer_1 = __importDefault(require("./auto-config-optimizer"));
7
8
  /**
8
9
  * Konfiguracja dla CommandBus (BullMQ)
9
10
  */
10
11
  class CommandBusConfig extends base_config_1.default {
11
12
  constructor(params) {
12
- var _a, _b, _c, _d, _e, _f;
13
+ var _a, _b, _c, _d, _e, _f, _g;
13
14
  super(params);
15
+ // Wczytaj konfigurację auto-optymalizacji (domyślnie true, wyłączenie tylko gdy 'false')
16
+ this.autoOptimize = process.env.COMMAND_BUS_AUTO_OPTIMIZE !== 'false';
17
+ // Wykryj czy concurrency zostało podane jawnie przez zmienne środowiskowe
18
+ const manualConcurrencyFromEnv = !!((_a = process.env.COMMAND_BUS_CONCURRENCY) !== null && _a !== void 0 ? _a : process.env.EVENT_BUS_CONCURRENCY);
14
19
  // Wczytaj konfigurację z nowym prefiksem COMMAND_BUS_ z fallbackiem do starych nazw
15
- this.concurrency = this.parseIntWithDefault((_a = process.env.COMMAND_BUS_CONCURRENCY) !== null && _a !== void 0 ? _a : process.env.EVENT_BUS_CONCURRENCY, 1);
16
- this.maxAttempts = this.parseIntWithDefault((_b = process.env.COMMAND_BUS_MAX_ATTEMPTS) !== null && _b !== void 0 ? _b : process.env.EVENT_BUS_MAX_ATTEMPTS, 3);
17
- this.backoffDelay = this.parseIntWithDefault((_c = process.env.COMMAND_BUS_BACKOFF_DELAY) !== null && _c !== void 0 ? _c : process.env.EVENT_BUS_BACKOFF_DELAY, 2000);
18
- const queueModeValue = (_d = process.env.COMMAND_BUS_QUEUE_MODE) !== null && _d !== void 0 ? _d : process.env.EVENT_BUS_QUEUE_MODE;
20
+ this.concurrency = this.parseIntWithDefault((_b = process.env.COMMAND_BUS_CONCURRENCY) !== null && _b !== void 0 ? _b : process.env.EVENT_BUS_CONCURRENCY, 1);
21
+ this.maxAttempts = this.parseIntWithDefault((_c = process.env.COMMAND_BUS_MAX_ATTEMPTS) !== null && _c !== void 0 ? _c : process.env.EVENT_BUS_MAX_ATTEMPTS, 3);
22
+ this.backoffDelay = this.parseIntWithDefault((_d = process.env.COMMAND_BUS_BACKOFF_DELAY) !== null && _d !== void 0 ? _d : process.env.EVENT_BUS_BACKOFF_DELAY, 2000);
23
+ const queueModeValue = (_e = process.env.COMMAND_BUS_QUEUE_MODE) !== null && _e !== void 0 ? _e : process.env.EVENT_BUS_QUEUE_MODE;
19
24
  this.queueMode = queueModeValue === 'lifo' ? 'lifo' : 'fifo';
20
- this.commandLog = (_f = (_e = process.env.COMMAND_BUS_LOG) !== null && _e !== void 0 ? _e : process.env.EVENT_BUS_LOG) !== null && _f !== void 0 ? _f : '';
25
+ this.commandLog = (_g = (_f = process.env.COMMAND_BUS_LOG) !== null && _f !== void 0 ? _f : process.env.EVENT_BUS_LOG) !== null && _g !== void 0 ? _g : '';
26
+ // Wykryj czy concurrency zostało podane jawnie przez params
27
+ const manualConcurrencyFromParams = (params === null || params === void 0 ? void 0 : params.concurrency) !== undefined;
21
28
  // Nadpisz wartościami z parametrów konstruktora
22
29
  if (params) {
23
30
  Object.keys(params).forEach((key) => {
@@ -26,6 +33,26 @@ class CommandBusConfig extends base_config_1.default {
26
33
  }
27
34
  });
28
35
  }
36
+ // Auto-optymalizacja concurrency tylko gdy nie zostało podane ręcznie
37
+ const manualConcurrency = manualConcurrencyFromEnv || manualConcurrencyFromParams;
38
+ if (this.autoOptimize && !manualConcurrency) {
39
+ const optimizedConcurrency = auto_config_optimizer_1.default.calculateOptimalConcurrency();
40
+ const systemInfo = auto_config_optimizer_1.default.getSystemInfo();
41
+ this.logger.log('Auto-optymalizacja concurrency', {
42
+ oldConcurrency: this.concurrency,
43
+ newConcurrency: optimizedConcurrency,
44
+ systemInfo,
45
+ timestamp: new Date().toISOString(),
46
+ });
47
+ this.concurrency = optimizedConcurrency;
48
+ }
49
+ else if (manualConcurrency) {
50
+ this.logger.log('Użyto ręcznie ustawionego concurrency', {
51
+ concurrency: this.concurrency,
52
+ source: manualConcurrencyFromParams ? 'params' : 'env',
53
+ timestamp: new Date().toISOString(),
54
+ });
55
+ }
29
56
  // Dodatkowa walidacja specyficzna dla CommandBus
30
57
  this.validateCommandBusConfig();
31
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command-bus-config.js","sourceRoot":"","sources":["../../../src/command-bus/config/command-bus-config.ts"],"names":[],"mappings":";;;;;AAAA,kFAAyD;AAEzD;;GAEG;AACH,MAAqB,gBAAiB,SAAQ,qBAAU;IA0BtD,YAAmB,MAAkC;;QACnD,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,oFAAoF;QACpF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,MAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,mCAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EACxE,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACzC,MAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,mCAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAC1E,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAC1C,MAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,mCAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAC5E,IAAI,CACL,CAAC;QAEF,MAAM,cAAc,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,mCAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC9F,IAAI,CAAC,SAAS,GAAG,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAE7D,IAAI,CAAC,UAAU,GAAG,MAAA,MAAA,OAAO,CAAC,GAAG,CAAC,eAAe,mCAAI,OAAO,CAAC,GAAG,CAAC,aAAa,mCAAI,EAAE,CAAC;QAEjF,gDAAgD;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;gBAC1C,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC1C,IAAgC,CAAC,GAAG,CAAC,GAAI,MAAkC,CAAC,GAAG,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AAnFD,mCAmFC"}
1
+ {"version":3,"file":"command-bus-config.js","sourceRoot":"","sources":["../../../src/command-bus/config/command-bus-config.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,9 @@ describe('CommandBusConfig', () => {
22
22
  expect(config.redisUrl).toBe('redis://localhost:6379');
23
23
  expect(config.logger).toBeInstanceOf(logger_1.Logger);
24
24
  expect(config.logLevel).toBe('log');
25
- expect(config.concurrency).toBe(1);
25
+ // autoOptimize jest domyślnie true, więc concurrency będzie auto-optymalizowane
26
+ expect(config.autoOptimize).toBe(true);
27
+ expect(config.concurrency).toBeGreaterThan(1); // Auto-optymalizacja
26
28
  expect(config.maxAttempts).toBe(3);
27
29
  expect(config.backoffDelay).toBe(2000);
28
30
  expect(config.queueMode).toBe('fifo');
@@ -111,7 +113,9 @@ describe('CommandBusConfig', () => {
111
113
  // When
112
114
  const config = new command_bus_config_1.default();
113
115
  // Then - powinno użyć domyślnych wartości przy błędnym parsowaniu
114
- expect(config.concurrency).toBe(1);
116
+ // Gdy zmienna środowiskowa jest ustawiona (nawet nieprawidłowo), uznajemy ją za ręczne ustawienie
117
+ // więc nie uruchamiamy auto-optymalizacji i używamy fallback wartości z parseIntWithDefault
118
+ expect(config.concurrency).toBe(1); // Fallback value z parseIntWithDefault
115
119
  expect(config.maxAttempts).toBe(3);
116
120
  expect(config.backoffDelay).toBe(2000);
117
121
  });
@@ -124,6 +128,62 @@ describe('CommandBusConfig', () => {
124
128
  expect(config.queueMode).toBe('fifo');
125
129
  });
126
130
  });
131
+ describe('auto-optymalizacja', () => {
132
+ it('powinno używać auto-optymalizacji domyślnie', () => {
133
+ // When
134
+ const config = new command_bus_config_1.default();
135
+ // Then
136
+ expect(config.autoOptimize).toBe(true);
137
+ expect(config.concurrency).toBeGreaterThan(1); // Auto-optymalizowane
138
+ });
139
+ it('powinno wyłączyć auto-optymalizację gdy COMMAND_BUS_AUTO_OPTIMIZE=false', () => {
140
+ // Given
141
+ process.env.COMMAND_BUS_AUTO_OPTIMIZE = 'false';
142
+ // When
143
+ const config = new command_bus_config_1.default();
144
+ // Then
145
+ expect(config.autoOptimize).toBe(false);
146
+ expect(config.concurrency).toBe(1); // Domyślna wartość bez auto-optymalizacji
147
+ });
148
+ it('powinno używać ręcznego concurrency z env zamiast auto-optymalizacji', () => {
149
+ // Given
150
+ process.env.COMMAND_BUS_CONCURRENCY = '42';
151
+ // When
152
+ const config = new command_bus_config_1.default();
153
+ // Then
154
+ expect(config.autoOptimize).toBe(true); // Auto-optymalizacja włączona
155
+ expect(config.concurrency).toBe(42); // Ale ręczna wartość ma priorytet
156
+ });
157
+ it('powinno używać ręcznego concurrency z params zamiast auto-optymalizacji', () => {
158
+ // When
159
+ const config = new command_bus_config_1.default({ concurrency: 123 });
160
+ // Then
161
+ expect(config.autoOptimize).toBe(true); // Auto-optymalizacja włączona
162
+ expect(config.concurrency).toBe(123); // Ale ręczna wartość ma priorytet
163
+ });
164
+ it('powinno preferować params nad env dla ręcznego concurrency', () => {
165
+ // Given
166
+ process.env.COMMAND_BUS_CONCURRENCY = '50';
167
+ // When
168
+ const config = new command_bus_config_1.default({ concurrency: 200 });
169
+ // Then
170
+ expect(config.concurrency).toBe(200); // params ma priorytet
171
+ });
172
+ it('powinno używać autoOptimize z params', () => {
173
+ // When
174
+ const config = new command_bus_config_1.default({ autoOptimize: false });
175
+ // Then
176
+ expect(config.autoOptimize).toBe(false);
177
+ expect(config.concurrency).toBe(1); // Domyślna wartość
178
+ });
179
+ it('powinno używać auto-optymalizacji gdy params.concurrency jest undefined', () => {
180
+ // When
181
+ const config = new command_bus_config_1.default({ autoOptimize: true });
182
+ // Then
183
+ expect(config.autoOptimize).toBe(true);
184
+ expect(config.concurrency).toBeGreaterThan(1); // Auto-optymalizowane
185
+ });
186
+ });
127
187
  describe('walidacja', () => {
128
188
  it('powinno zwalidować konfigurację przy tworzeniu', () => {
129
189
  // Given
@@ -1 +1 @@
1
- {"version":3,"file":"command-bus-config.spec.js","sourceRoot":"","sources":["../../../src/command-bus/config/command-bus-config.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-bus-config.spec.js","sourceRoot":"","sources":["../../../src/command-bus/config/command-bus-config.spec.ts"],"names":[],"mappings":"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"}
@@ -59,14 +59,14 @@ export default class CommandBus {
59
59
  dispatch(command: Command): Promise<void>;
60
60
  /**
61
61
  * Rejestruje handler dla komendy
62
+ * Uruchamia benchmark aby ustalić optymalne concurrency
62
63
  * @param commandDefinition - Definicja komendy (klasa)
63
64
  * @param handler - Handler do obsługi komendy
64
65
  */
65
66
  handle<T extends Command>(commandDefinition: new (...args: any[]) => T, handler: (command: T) => unknown | Promise<unknown>): void;
66
67
  /**
67
68
  * Synchroniczne wywołanie komendy z oczekiwaniem na wynik (RPC)
68
- * Każde wywołanie tworzy unikalną kolejkę odpowiedzi która jest automatycznie kasowana
69
- * Używa cache kolejek dla optymalizacji pamięci
69
+ * Request przez BullMQ, odpowiedź przez Redis Pub/Sub
70
70
  * @param command - Komenda do wykonania
71
71
  * @param timeout - Timeout w milisekundach (domyślnie 30s)
72
72
  */