pp-command-bus 1.4.0 → 2.0.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.
- package/README.md +402 -1113
- package/dist/command-bus/command-bus.spec.js +144 -370
- package/dist/command-bus/command-bus.spec.js.map +1 -1
- package/dist/command-bus/command.d.ts +23 -5
- package/dist/command-bus/command.js +20 -34
- package/dist/command-bus/command.js.map +1 -1
- package/dist/command-bus/config/command-bus-config.d.ts +75 -21
- package/dist/command-bus/config/command-bus-config.js +99 -58
- package/dist/command-bus/config/command-bus-config.js.map +1 -1
- package/dist/command-bus/config/command-bus-config.spec.js +174 -100
- package/dist/command-bus/config/command-bus-config.spec.js.map +1 -1
- package/dist/command-bus/index.d.ts +39 -52
- package/dist/command-bus/index.js +133 -126
- package/dist/command-bus/index.js.map +1 -1
- package/dist/command-bus/logging/command-logger.d.ts +2 -0
- package/dist/command-bus/logging/command-logger.js +7 -0
- package/dist/command-bus/logging/command-logger.js.map +1 -1
- package/dist/command-bus/logging/command-logger.spec.js +49 -14
- package/dist/command-bus/logging/command-logger.spec.js.map +1 -1
- package/dist/command-bus/serialization/index.d.ts +6 -0
- package/dist/command-bus/serialization/index.js +9 -0
- package/dist/command-bus/serialization/index.js.map +1 -0
- package/dist/command-bus/serialization/msgpack-serializer.d.ts +26 -0
- package/dist/command-bus/serialization/msgpack-serializer.js +70 -0
- package/dist/command-bus/serialization/msgpack-serializer.js.map +1 -0
- package/dist/command-bus/serialization/msgpack-serializer.spec.js +223 -0
- package/dist/command-bus/serialization/msgpack-serializer.spec.js.map +1 -0
- package/dist/command-bus/serialization/serializer.interface.d.ts +21 -0
- package/dist/command-bus/serialization/serializer.interface.js +3 -0
- package/dist/command-bus/serialization/serializer.interface.js.map +1 -0
- package/dist/command-bus/transport/consumer-loop.d.ts +45 -0
- package/dist/command-bus/transport/consumer-loop.js +90 -0
- package/dist/command-bus/transport/consumer-loop.js.map +1 -0
- package/dist/command-bus/transport/consumer-loop.spec.js +216 -0
- package/dist/command-bus/transport/consumer-loop.spec.js.map +1 -0
- package/dist/command-bus/transport/index.d.ts +21 -0
- package/dist/command-bus/transport/index.js +23 -0
- package/dist/command-bus/transport/index.js.map +1 -0
- package/dist/command-bus/transport/message-processor.d.ts +59 -0
- package/dist/command-bus/transport/message-processor.js +111 -0
- package/dist/command-bus/transport/message-processor.js.map +1 -0
- package/dist/command-bus/transport/message-processor.spec.js +185 -0
- package/dist/command-bus/transport/message-processor.spec.js.map +1 -0
- package/dist/command-bus/transport/pending-recovery.d.ts +54 -0
- package/dist/command-bus/transport/pending-recovery.js +139 -0
- package/dist/command-bus/transport/pending-recovery.js.map +1 -0
- package/dist/command-bus/transport/pending-recovery.spec.js +176 -0
- package/dist/command-bus/transport/pending-recovery.spec.js.map +1 -0
- package/dist/command-bus/transport/redis-codec.d.ts +24 -0
- package/dist/command-bus/transport/redis-codec.js +33 -0
- package/dist/command-bus/transport/redis-codec.js.map +1 -0
- package/dist/command-bus/transport/redis-codec.spec.js +53 -0
- package/dist/command-bus/transport/redis-codec.spec.js.map +1 -0
- package/dist/command-bus/transport/redis-streams-transport.d.ts +91 -0
- package/dist/command-bus/transport/redis-streams-transport.js +134 -0
- package/dist/command-bus/transport/redis-streams-transport.js.map +1 -0
- package/dist/command-bus/transport/redis-streams-transport.spec.js +420 -0
- package/dist/command-bus/transport/redis-streams-transport.spec.js.map +1 -0
- package/dist/command-bus/transport/rpc-handler.d.ts +39 -0
- package/dist/command-bus/transport/rpc-handler.js +87 -0
- package/dist/command-bus/transport/rpc-handler.js.map +1 -0
- package/dist/command-bus/transport/rpc-handler.spec.js +157 -0
- package/dist/command-bus/transport/rpc-handler.spec.js.map +1 -0
- package/dist/command-bus/transport/stream-consumer.d.ts +89 -0
- package/dist/command-bus/transport/stream-consumer.js +181 -0
- package/dist/command-bus/transport/stream-consumer.js.map +1 -0
- package/dist/command-bus/transport/stream-consumer.spec.js +284 -0
- package/dist/command-bus/transport/stream-consumer.spec.js.map +1 -0
- package/dist/command-bus/transport/stream-producer.d.ts +23 -0
- package/dist/command-bus/transport/stream-producer.js +70 -0
- package/dist/command-bus/transport/stream-producer.js.map +1 -0
- package/dist/command-bus/transport/stream-producer.spec.js +125 -0
- package/dist/command-bus/transport/stream-producer.spec.js.map +1 -0
- package/dist/command-bus/transport/transport.interface.d.ts +87 -0
- package/dist/command-bus/transport/transport.interface.js +3 -0
- package/dist/command-bus/transport/transport.interface.js.map +1 -0
- package/dist/command-bus/types/index.d.ts +9 -80
- package/dist/examples/rpc-throughput.demo.js +24 -22
- package/dist/examples/rpc-throughput.demo.js.map +1 -1
- package/dist/examples/rpc.demo.js +47 -53
- package/dist/examples/rpc.demo.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/pp-command-bus-2.0.0.tgz +0 -0
- package/dist/shared/redis/connection-pool.d.ts +54 -0
- package/dist/shared/redis/connection-pool.js +117 -0
- package/dist/shared/redis/connection-pool.js.map +1 -0
- package/dist/shared/redis/connection-pool.spec.js +114 -0
- package/dist/shared/redis/connection-pool.spec.js.map +1 -0
- package/dist/shared/redis/index.d.ts +5 -3
- package/dist/shared/redis/index.js +6 -4
- package/dist/shared/redis/index.js.map +1 -1
- package/dist/shared/redis/rpc-connection-pool.d.ts +61 -0
- package/dist/shared/redis/rpc-connection-pool.js +154 -0
- package/dist/shared/redis/rpc-connection-pool.js.map +1 -0
- package/dist/shared/redis/rpc-connection-pool.spec.d.ts +1 -0
- package/dist/shared/redis/rpc-connection-pool.spec.js +173 -0
- package/dist/shared/redis/rpc-connection-pool.spec.js.map +1 -0
- package/dist/shared/types.d.ts +0 -4
- package/dist/shared/utils/error-utils.d.ts +8 -0
- package/dist/shared/utils/error-utils.js +14 -0
- package/dist/shared/utils/error-utils.js.map +1 -0
- package/package.json +12 -12
- package/dist/command-bus/config/auto-config-optimizer.d.ts +0 -35
- package/dist/command-bus/config/auto-config-optimizer.js +0 -52
- package/dist/command-bus/config/auto-config-optimizer.js.map +0 -1
- package/dist/command-bus/config/auto-config-optimizer.spec.js +0 -42
- package/dist/command-bus/config/auto-config-optimizer.spec.js.map +0 -1
- package/dist/command-bus/job/index.d.ts +0 -6
- package/dist/command-bus/job/index.js +0 -15
- package/dist/command-bus/job/index.js.map +0 -1
- package/dist/command-bus/job/job-options-builder.d.ts +0 -21
- package/dist/command-bus/job/job-options-builder.js +0 -58
- package/dist/command-bus/job/job-options-builder.js.map +0 -1
- package/dist/command-bus/job/job-options-builder.spec.js +0 -156
- package/dist/command-bus/job/job-options-builder.spec.js.map +0 -1
- package/dist/command-bus/job/job-processor.d.ts +0 -39
- package/dist/command-bus/job/job-processor.js +0 -203
- package/dist/command-bus/job/job-processor.js.map +0 -1
- package/dist/command-bus/job/job-processor.spec.js +0 -437
- package/dist/command-bus/job/job-processor.spec.js.map +0 -1
- package/dist/command-bus/queue/index.d.ts +0 -5
- package/dist/command-bus/queue/index.js +0 -13
- package/dist/command-bus/queue/index.js.map +0 -1
- package/dist/command-bus/queue/queue-manager.d.ts +0 -56
- package/dist/command-bus/queue/queue-manager.js +0 -163
- package/dist/command-bus/queue/queue-manager.js.map +0 -1
- package/dist/command-bus/queue/queue-manager.spec.js +0 -371
- package/dist/command-bus/queue/queue-manager.spec.js.map +0 -1
- package/dist/command-bus/rpc/index.d.ts +0 -11
- package/dist/command-bus/rpc/index.js +0 -19
- package/dist/command-bus/rpc/index.js.map +0 -1
- package/dist/command-bus/rpc/payload-compression.service.d.ts +0 -51
- package/dist/command-bus/rpc/payload-compression.service.js +0 -218
- package/dist/command-bus/rpc/payload-compression.service.js.map +0 -1
- package/dist/command-bus/rpc/payload-compression.service.spec.js +0 -379
- package/dist/command-bus/rpc/payload-compression.service.spec.js.map +0 -1
- package/dist/command-bus/rpc/rpc-coordinator.d.ts +0 -96
- package/dist/command-bus/rpc/rpc-coordinator.js +0 -500
- package/dist/command-bus/rpc/rpc-coordinator.js.map +0 -1
- package/dist/command-bus/rpc/rpc-coordinator.spec.js +0 -622
- package/dist/command-bus/rpc/rpc-coordinator.spec.js.map +0 -1
- package/dist/command-bus/rpc/rpc-job-cancellation.service.d.ts +0 -82
- package/dist/command-bus/rpc/rpc-job-cancellation.service.js +0 -180
- package/dist/command-bus/rpc/rpc-job-cancellation.service.js.map +0 -1
- package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js +0 -286
- package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js.map +0 -1
- package/dist/command-bus/worker/index.d.ts +0 -10
- package/dist/command-bus/worker/index.js +0 -19
- package/dist/command-bus/worker/index.js.map +0 -1
- package/dist/command-bus/worker/worker-benchmark.d.ts +0 -71
- package/dist/command-bus/worker/worker-benchmark.js +0 -203
- package/dist/command-bus/worker/worker-benchmark.js.map +0 -1
- package/dist/command-bus/worker/worker-benchmark.spec.js +0 -310
- package/dist/command-bus/worker/worker-benchmark.spec.js.map +0 -1
- package/dist/command-bus/worker/worker-metrics-collector.d.ts +0 -98
- package/dist/command-bus/worker/worker-metrics-collector.js +0 -242
- package/dist/command-bus/worker/worker-metrics-collector.js.map +0 -1
- package/dist/command-bus/worker/worker-orchestrator.d.ts +0 -70
- package/dist/command-bus/worker/worker-orchestrator.js +0 -339
- package/dist/command-bus/worker/worker-orchestrator.js.map +0 -1
- package/dist/command-bus/worker/worker-orchestrator.spec.js +0 -712
- package/dist/command-bus/worker/worker-orchestrator.spec.js.map +0 -1
- package/dist/examples/auto-config.demo.d.ts +0 -9
- package/dist/examples/auto-config.demo.js +0 -106
- package/dist/examples/auto-config.demo.js.map +0 -1
- package/dist/examples/rpc-compression.demo.d.ts +0 -5
- package/dist/examples/rpc-compression.demo.js +0 -363
- package/dist/examples/rpc-compression.demo.js.map +0 -1
- package/dist/examples/rpc-resilience.demo.d.ts +0 -11
- package/dist/examples/rpc-resilience.demo.js +0 -235
- package/dist/examples/rpc-resilience.demo.js.map +0 -1
- package/dist/pp-command-bus-1.4.0.tgz +0 -0
- package/dist/shared/config/base-config.d.ts +0 -54
- package/dist/shared/config/base-config.js +0 -114
- package/dist/shared/config/base-config.js.map +0 -1
- package/dist/shared/config/base-config.spec.js +0 -204
- package/dist/shared/config/base-config.spec.js.map +0 -1
- package/dist/shared/config/index.d.ts +0 -1
- package/dist/shared/config/index.js +0 -9
- package/dist/shared/config/index.js.map +0 -1
- package/dist/shared/redis/redis-connection-factory.d.ts +0 -66
- package/dist/shared/redis/redis-connection-factory.js +0 -113
- package/dist/shared/redis/redis-connection-factory.js.map +0 -1
- /package/dist/command-bus/{config/auto-config-optimizer.spec.d.ts → serialization/msgpack-serializer.spec.d.ts} +0 -0
- /package/dist/command-bus/{job/job-options-builder.spec.d.ts → transport/consumer-loop.spec.d.ts} +0 -0
- /package/dist/command-bus/{job/job-processor.spec.d.ts → transport/message-processor.spec.d.ts} +0 -0
- /package/dist/command-bus/{queue/queue-manager.spec.d.ts → transport/pending-recovery.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/payload-compression.service.spec.d.ts → transport/redis-codec.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/rpc-coordinator.spec.d.ts → transport/redis-streams-transport.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/rpc-job-cancellation.service.spec.d.ts → transport/rpc-handler.spec.d.ts} +0 -0
- /package/dist/command-bus/{worker/worker-benchmark.spec.d.ts → transport/stream-consumer.spec.d.ts} +0 -0
- /package/dist/command-bus/{worker/worker-orchestrator.spec.d.ts → transport/stream-producer.spec.d.ts} +0 -0
- /package/dist/shared/{config/base-config.spec.d.ts → redis/connection-pool.spec.d.ts} +0 -0
|
@@ -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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"}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Bazowa klasa dla komend
|
|
2
|
+
* Bazowa klasa dla komend z generycznym payloadem
|
|
3
3
|
* Komendy są przetwarzane przez dokładnie jeden handler (1:1)
|
|
4
|
+
*
|
|
5
|
+
* Obiekty Date są natywnie obsługiwane przez MsgpackSerializer
|
|
6
|
+
* (extension type) — nie ma potrzeby ręcznej rekonstrukcji po deserializacji.
|
|
7
|
+
*
|
|
8
|
+
* @template T - Typ danych biznesowych komendy (payload)
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* class CreateUserCommand extends Command<{ name: string; email: string }> {
|
|
13
|
+
* constructor(payload: { name: string; email: string }) {
|
|
14
|
+
* super(payload);
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* const cmd = new CreateUserCommand({ name: 'Jan', email: 'jan@example.com' });
|
|
19
|
+
* console.log(cmd.__payload.name); // 'Jan'
|
|
20
|
+
* ```
|
|
4
21
|
*/
|
|
5
|
-
export default abstract class Command {
|
|
22
|
+
export default abstract class Command<T = unknown> {
|
|
6
23
|
/**
|
|
7
24
|
* Nazwa komendy (nazwa klasy)
|
|
8
25
|
*/
|
|
@@ -15,9 +32,10 @@ export default abstract class Command {
|
|
|
15
32
|
* Czas utworzenia komendy (timestamp)
|
|
16
33
|
*/
|
|
17
34
|
readonly __time: number;
|
|
18
|
-
constructor();
|
|
19
35
|
/**
|
|
20
|
-
*
|
|
36
|
+
* Dane biznesowe komendy
|
|
37
|
+
* Wszystkie dane specyficzne dla komendy powinny być przechowywane tutaj
|
|
21
38
|
*/
|
|
22
|
-
|
|
39
|
+
readonly __payload: T;
|
|
40
|
+
constructor(payload: T);
|
|
23
41
|
}
|
|
@@ -2,49 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const crypto_1 = require("crypto");
|
|
4
4
|
/**
|
|
5
|
-
* Bazowa klasa dla komend
|
|
5
|
+
* Bazowa klasa dla komend z generycznym payloadem
|
|
6
6
|
* Komendy są przetwarzane przez dokładnie jeden handler (1:1)
|
|
7
|
+
*
|
|
8
|
+
* Obiekty Date są natywnie obsługiwane przez MsgpackSerializer
|
|
9
|
+
* (extension type) — nie ma potrzeby ręcznej rekonstrukcji po deserializacji.
|
|
10
|
+
*
|
|
11
|
+
* @template T - Typ danych biznesowych komendy (payload)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* class CreateUserCommand extends Command<{ name: string; email: string }> {
|
|
16
|
+
* constructor(payload: { name: string; email: string }) {
|
|
17
|
+
* super(payload);
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* const cmd = new CreateUserCommand({ name: 'Jan', email: 'jan@example.com' });
|
|
22
|
+
* console.log(cmd.__payload.name); // 'Jan'
|
|
23
|
+
* ```
|
|
7
24
|
*/
|
|
8
25
|
class Command {
|
|
9
|
-
constructor() {
|
|
26
|
+
constructor(payload) {
|
|
10
27
|
/**
|
|
11
28
|
* Czas utworzenia komendy (timestamp)
|
|
12
29
|
*/
|
|
13
30
|
this.__time = Date.now();
|
|
14
31
|
this.__name = this.constructor.name;
|
|
15
32
|
this.__id = (0, crypto_1.randomUUID)();
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Przywraca obiekty Date z serializowanych danych
|
|
19
|
-
*/
|
|
20
|
-
static reconstructDates(obj) {
|
|
21
|
-
if (obj === null || obj === undefined) {
|
|
22
|
-
return obj;
|
|
23
|
-
}
|
|
24
|
-
if (typeof obj === 'string') {
|
|
25
|
-
// Sprawdź czy string to data ISO
|
|
26
|
-
const isoDateRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z?$/;
|
|
27
|
-
if (isoDateRegex.test(obj)) {
|
|
28
|
-
const date = new Date(obj);
|
|
29
|
-
if (!isNaN(date.getTime())) {
|
|
30
|
-
return date;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return obj;
|
|
34
|
-
}
|
|
35
|
-
if (Array.isArray(obj)) {
|
|
36
|
-
return obj.map((item) => Command.reconstructDates(item));
|
|
37
|
-
}
|
|
38
|
-
if (typeof obj === 'object') {
|
|
39
|
-
const result = {};
|
|
40
|
-
for (const key in obj) {
|
|
41
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
42
|
-
result[key] = Command.reconstructDates(obj[key]);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return result;
|
|
46
|
-
}
|
|
47
|
-
return obj;
|
|
33
|
+
this.__payload = payload;
|
|
48
34
|
}
|
|
49
35
|
}
|
|
50
36
|
exports.default = Command;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/command-bus/command.ts"],"names":[],"mappings":";;AAAA,mCAAoC;AAEpC
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/command-bus/command.ts"],"names":[],"mappings":";;AAAA,mCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAA8B,OAAO;IAsBnC,YAAmB,OAAU;QAX7B;;WAEG;QACa,WAAM,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAS1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAU,GAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC3B,CAAC;CACF;AA3BD,0BA2BC"}
|
|
@@ -1,43 +1,97 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { RedisOptions } from 'ioredis';
|
|
2
|
+
import type { ILogger } from '../../shared/types';
|
|
3
|
+
import type { LogLevelType } from '../../shared/logging/log-level';
|
|
2
4
|
/**
|
|
3
|
-
* Konfiguracja dla CommandBus (
|
|
5
|
+
* Konfiguracja dla CommandBus (Redis Streams + DragonflyDB)
|
|
6
|
+
*
|
|
7
|
+
* Standalone klasa — łączy konfigurację Redis, loggera i parametrów CommandBus.
|
|
8
|
+
* Type-safe przypisanie parametrów bez Object.keys() mutation.
|
|
4
9
|
*/
|
|
5
|
-
export default class CommandBusConfig
|
|
10
|
+
export default class CommandBusConfig {
|
|
6
11
|
/**
|
|
7
|
-
*
|
|
12
|
+
* URL połączenia do DragonflyDB/Redis
|
|
13
|
+
*/
|
|
14
|
+
redisUrl: string;
|
|
15
|
+
/**
|
|
16
|
+
* Poziom logowania (debug, log, warn, error)
|
|
17
|
+
* Domyślnie 'log' - loguje log, warn, error (bez debug)
|
|
18
|
+
*/
|
|
19
|
+
logLevel: LogLevelType;
|
|
20
|
+
/**
|
|
21
|
+
* Logger do użycia (domyślnie wbudowany Logger z console)
|
|
22
|
+
*/
|
|
23
|
+
logger: ILogger;
|
|
24
|
+
/**
|
|
25
|
+
* Opóźnienie między próbami reconnect do Redis w milisekundach
|
|
26
|
+
* Domyślnie 5000ms (5 sekund)
|
|
27
|
+
*/
|
|
28
|
+
redisRetryDelay: number;
|
|
29
|
+
/**
|
|
30
|
+
* Maksymalna liczba prób reconnect do Redis
|
|
31
|
+
* 0 = nieskończoność (domyślnie)
|
|
32
|
+
*/
|
|
33
|
+
redisMaxRetries: number;
|
|
34
|
+
/**
|
|
35
|
+
* Maksymalna liczba wiadomości przetwarzanych równolegle per konsument
|
|
36
|
+
*
|
|
37
|
+
* Domyślnie 60 × availableParallelism() — adekwatne dla typowych I/O-bound handlerów
|
|
38
|
+
* (baza, API, Redis), gdzie handler czeka na I/O a nie zużywa CPU.
|
|
39
|
+
* Dla CPU-bound handlerów ustaw na availableParallelism() (liczba rdzeni).
|
|
40
|
+
*
|
|
41
|
+
* @default 60 * availableParallelism()
|
|
8
42
|
*/
|
|
9
43
|
concurrency: number;
|
|
10
44
|
/**
|
|
11
|
-
* Maksymalna liczba prób przetworzenia
|
|
45
|
+
* Maksymalna liczba prób przetworzenia wiadomości
|
|
46
|
+
* @default 3
|
|
12
47
|
*/
|
|
13
48
|
maxAttempts: number;
|
|
14
49
|
/**
|
|
15
|
-
*
|
|
50
|
+
* Ścieżka do katalogu logów komend (puste = wyłączone)
|
|
16
51
|
*/
|
|
17
|
-
|
|
52
|
+
commandLog: string;
|
|
18
53
|
/**
|
|
19
|
-
*
|
|
54
|
+
* Rozmiar puli połączeń Redis (round-robin, non-blocking ops)
|
|
55
|
+
* @default 2 * availableParallelism()
|
|
20
56
|
*/
|
|
21
|
-
|
|
57
|
+
poolSize: number;
|
|
22
58
|
/**
|
|
23
|
-
*
|
|
59
|
+
* Maksymalna liczba równoległych wywołań RPC (bounded BRPOP connections)
|
|
60
|
+
* @default 50
|
|
24
61
|
*/
|
|
25
|
-
|
|
62
|
+
maxConcurrentRpc: number;
|
|
63
|
+
/**
|
|
64
|
+
* Liczba wiadomości pobieranych w jednym XREADGROUP
|
|
65
|
+
*
|
|
66
|
+
* Większy batch = mniej roundtripów do Redis, wyższy throughput.
|
|
67
|
+
* Przy concurrency=960 i batchSize=10 potrzeba 96 roundtripów żeby zapełnić sloty.
|
|
68
|
+
* Przy batchSize=100 potrzeba tylko 10 roundtripów — 10× mniej overhead sieciowego.
|
|
69
|
+
*
|
|
70
|
+
* @default 100
|
|
71
|
+
*/
|
|
72
|
+
batchSize: number;
|
|
26
73
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* @default true
|
|
74
|
+
* Czas po którym stalled wiadomość jest przejmowana (ms)
|
|
75
|
+
* @default 30000
|
|
30
76
|
*/
|
|
31
|
-
|
|
77
|
+
claimTimeout: number;
|
|
32
78
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* @default 1024 (1KB)
|
|
79
|
+
* Maksymalna liczba wiadomości przechowywanych w strumieniu (XTRIM ~)
|
|
80
|
+
* @default 10000
|
|
36
81
|
*/
|
|
37
|
-
|
|
82
|
+
maxRetained: number;
|
|
38
83
|
constructor(params?: Partial<CommandBusConfig>);
|
|
39
84
|
/**
|
|
40
|
-
*
|
|
85
|
+
* Zwraca opcje połączenia Redis na podstawie URL
|
|
86
|
+
* Zawiera retryStrategy z konfiguracją reconnect
|
|
87
|
+
*/
|
|
88
|
+
getRedisOptions(): RedisOptions;
|
|
89
|
+
/**
|
|
90
|
+
* Waliduje całą konfigurację
|
|
91
|
+
*/
|
|
92
|
+
private validate;
|
|
93
|
+
/**
|
|
94
|
+
* Parsuje string na liczbę z wartością domyślną
|
|
41
95
|
*/
|
|
42
|
-
private
|
|
96
|
+
private static parseIntWithDefault;
|
|
43
97
|
}
|
|
@@ -1,81 +1,122 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const
|
|
3
|
+
const os_1 = require("os");
|
|
4
|
+
const logger_1 = require("../../shared/logging/logger");
|
|
8
5
|
/**
|
|
9
|
-
* Konfiguracja dla CommandBus (
|
|
6
|
+
* Konfiguracja dla CommandBus (Redis Streams + DragonflyDB)
|
|
7
|
+
*
|
|
8
|
+
* Standalone klasa — łączy konfigurację Redis, loggera i parametrów CommandBus.
|
|
9
|
+
* Type-safe przypisanie parametrów bez Object.keys() mutation.
|
|
10
10
|
*/
|
|
11
|
-
class CommandBusConfig
|
|
11
|
+
class CommandBusConfig {
|
|
12
12
|
constructor(params) {
|
|
13
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
this.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
13
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
14
|
+
// Redis
|
|
15
|
+
this.redisUrl = (_b = (_a = params === null || params === void 0 ? void 0 : params.redisUrl) !== null && _a !== void 0 ? _a : process.env.REDIS_URL) !== null && _b !== void 0 ? _b : 'redis://localhost:6379';
|
|
16
|
+
this.redisRetryDelay =
|
|
17
|
+
(_c = params === null || params === void 0 ? void 0 : params.redisRetryDelay) !== null && _c !== void 0 ? _c : CommandBusConfig.parseIntWithDefault(process.env.REDIS_RETRY_DELAY, 5000);
|
|
18
|
+
this.redisMaxRetries =
|
|
19
|
+
(_d = params === null || params === void 0 ? void 0 : params.redisMaxRetries) !== null && _d !== void 0 ? _d : CommandBusConfig.parseIntWithDefault(process.env.REDIS_MAX_RETRIES, 0);
|
|
20
|
+
// Logger
|
|
21
|
+
this.logLevel = (_f = (_e = params === null || params === void 0 ? void 0 : params.logLevel) !== null && _e !== void 0 ? _e : process.env.LOG_LEVEL) !== null && _f !== void 0 ? _f : 'log';
|
|
22
|
+
this.logger = (_g = params === null || params === void 0 ? void 0 : params.logger) !== null && _g !== void 0 ? _g : new logger_1.Logger(console, this.logLevel);
|
|
23
|
+
// CommandBus — params nadpisują env, env nadpisuje defaults
|
|
24
|
+
this.concurrency =
|
|
25
|
+
(_h = params === null || params === void 0 ? void 0 : params.concurrency) !== null && _h !== void 0 ? _h : CommandBusConfig.parseIntWithDefault(process.env.COMMAND_BUS_CONCURRENCY, 60 * (0, os_1.availableParallelism)());
|
|
26
|
+
this.maxAttempts =
|
|
27
|
+
(_j = params === null || params === void 0 ? void 0 : params.maxAttempts) !== null && _j !== void 0 ? _j : CommandBusConfig.parseIntWithDefault(process.env.COMMAND_BUS_MAX_ATTEMPTS, 3);
|
|
28
|
+
this.commandLog = (_l = (_k = params === null || params === void 0 ? void 0 : params.commandLog) !== null && _k !== void 0 ? _k : process.env.COMMAND_BUS_LOG) !== null && _l !== void 0 ? _l : '';
|
|
29
|
+
this.poolSize =
|
|
30
|
+
(_m = params === null || params === void 0 ? void 0 : params.poolSize) !== null && _m !== void 0 ? _m : CommandBusConfig.parseIntWithDefault(process.env.COMMAND_BUS_POOL_SIZE, 2 * (0, os_1.availableParallelism)());
|
|
31
|
+
this.maxConcurrentRpc =
|
|
32
|
+
(_o = params === null || params === void 0 ? void 0 : params.maxConcurrentRpc) !== null && _o !== void 0 ? _o : CommandBusConfig.parseIntWithDefault(process.env.COMMAND_BUS_MAX_CONCURRENT_RPC, 50);
|
|
33
|
+
this.batchSize =
|
|
34
|
+
(_p = params === null || params === void 0 ? void 0 : params.batchSize) !== null && _p !== void 0 ? _p : CommandBusConfig.parseIntWithDefault(process.env.COMMAND_BUS_BATCH_SIZE, 100);
|
|
35
|
+
this.claimTimeout =
|
|
36
|
+
(_q = params === null || params === void 0 ? void 0 : params.claimTimeout) !== null && _q !== void 0 ? _q : CommandBusConfig.parseIntWithDefault(process.env.COMMAND_BUS_CLAIM_TIMEOUT, 30000);
|
|
37
|
+
this.maxRetained =
|
|
38
|
+
(_r = params === null || params === void 0 ? void 0 : params.maxRetained) !== null && _r !== void 0 ? _r : CommandBusConfig.parseIntWithDefault(process.env.COMMAND_BUS_MAX_RETAINED, 10000);
|
|
39
|
+
this.validate();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Zwraca opcje połączenia Redis na podstawie URL
|
|
43
|
+
* Zawiera retryStrategy z konfiguracją reconnect
|
|
44
|
+
*/
|
|
45
|
+
getRedisOptions() {
|
|
46
|
+
try {
|
|
47
|
+
const url = new URL(this.redisUrl);
|
|
48
|
+
const retryDelay = this.redisRetryDelay;
|
|
49
|
+
const maxRetries = this.redisMaxRetries;
|
|
50
|
+
const options = {
|
|
51
|
+
host: url.hostname,
|
|
52
|
+
port: parseInt(url.port, 10) || 6379,
|
|
53
|
+
retryStrategy: (times) => {
|
|
54
|
+
if (maxRetries > 0 && times > maxRetries) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
return retryDelay;
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
if (url.username) {
|
|
61
|
+
options.username = url.username;
|
|
62
|
+
}
|
|
63
|
+
if (url.password) {
|
|
64
|
+
options.password = url.password;
|
|
65
|
+
}
|
|
66
|
+
if (url.pathname && url.pathname.length > 1) {
|
|
67
|
+
const db = parseInt(url.pathname.substring(1), 10);
|
|
68
|
+
if (!isNaN(db)) {
|
|
69
|
+
options.db = db;
|
|
34
70
|
}
|
|
35
|
-
}
|
|
71
|
+
}
|
|
72
|
+
return options;
|
|
36
73
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (this.autoOptimize && !manualConcurrency) {
|
|
40
|
-
const optimizedConcurrency = auto_config_optimizer_1.default.calculateOptimalConcurrency();
|
|
41
|
-
const systemInfo = auto_config_optimizer_1.default.getSystemInfo();
|
|
42
|
-
this.logger.log('Auto-optymalizacja concurrency', {
|
|
43
|
-
oldConcurrency: this.concurrency,
|
|
44
|
-
newConcurrency: optimizedConcurrency,
|
|
45
|
-
systemInfo,
|
|
46
|
-
timestamp: new Date().toISOString(),
|
|
47
|
-
});
|
|
48
|
-
this.concurrency = optimizedConcurrency;
|
|
74
|
+
catch (_a) {
|
|
75
|
+
throw new Error('Invalid Redis URL');
|
|
49
76
|
}
|
|
50
|
-
else if (manualConcurrency) {
|
|
51
|
-
this.logger.log('Użyto ręcznie ustawionego concurrency', {
|
|
52
|
-
concurrency: this.concurrency,
|
|
53
|
-
source: manualConcurrencyFromParams ? 'params' : 'env',
|
|
54
|
-
timestamp: new Date().toISOString(),
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
// Dodatkowa walidacja specyficzna dla CommandBus
|
|
58
|
-
this.validateCommandBusConfig();
|
|
59
77
|
}
|
|
60
78
|
/**
|
|
61
|
-
* Waliduje konfigurację
|
|
79
|
+
* Waliduje całą konfigurację
|
|
62
80
|
*/
|
|
63
|
-
|
|
81
|
+
validate() {
|
|
82
|
+
// Redis URL
|
|
83
|
+
try {
|
|
84
|
+
new URL(this.redisUrl);
|
|
85
|
+
}
|
|
86
|
+
catch (_a) {
|
|
87
|
+
throw new Error('Invalid Redis URL');
|
|
88
|
+
}
|
|
89
|
+
// CommandBus
|
|
64
90
|
if (this.concurrency < 1) {
|
|
65
91
|
throw new Error('concurrency must be at least 1');
|
|
66
92
|
}
|
|
67
93
|
if (this.maxAttempts < 1) {
|
|
68
94
|
throw new Error('maxAttempts must be at least 1');
|
|
69
95
|
}
|
|
70
|
-
if (this.
|
|
71
|
-
throw new Error('
|
|
96
|
+
if (this.poolSize < 1) {
|
|
97
|
+
throw new Error('poolSize must be at least 1');
|
|
72
98
|
}
|
|
73
|
-
if (this.
|
|
74
|
-
throw new Error(
|
|
99
|
+
if (this.maxConcurrentRpc < 1) {
|
|
100
|
+
throw new Error('maxConcurrentRpc must be at least 1');
|
|
75
101
|
}
|
|
76
|
-
if (this.
|
|
77
|
-
throw new Error('
|
|
102
|
+
if (this.batchSize < 1) {
|
|
103
|
+
throw new Error('batchSize must be at least 1');
|
|
78
104
|
}
|
|
105
|
+
if (this.claimTimeout < 1000) {
|
|
106
|
+
throw new Error('claimTimeout must be at least 1000ms');
|
|
107
|
+
}
|
|
108
|
+
if (this.maxRetained < 100) {
|
|
109
|
+
throw new Error('maxRetained must be at least 100');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Parsuje string na liczbę z wartością domyślną
|
|
114
|
+
*/
|
|
115
|
+
static parseIntWithDefault(value, defaultValue) {
|
|
116
|
+
if (!value)
|
|
117
|
+
return defaultValue;
|
|
118
|
+
const parsed = parseInt(value, 10);
|
|
119
|
+
return isNaN(parsed) ? defaultValue : parsed;
|
|
79
120
|
}
|
|
80
121
|
}
|
|
81
122
|
exports.default = CommandBusConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-bus-config.js","sourceRoot":"","sources":["../../../src/command-bus/config/command-bus-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-bus-config.js","sourceRoot":"","sources":["../../../src/command-bus/config/command-bus-config.ts"],"names":[],"mappings":"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"}
|