pp-command-bus 1.5.0 → 2.0.1
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 +400 -1219
- package/dist/command-bus/command-bus.spec.js +138 -359
- package/dist/command-bus/command-bus.spec.js.map +1 -1
- package/dist/command-bus/command.d.ts +3 -4
- package/dist/command-bus/command.js +3 -32
- package/dist/command-bus/command.js.map +1 -1
- package/dist/command-bus/config/command-bus-config.d.ts +80 -21
- package/dist/command-bus/config/command-bus-config.js +104 -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 +41 -50
- package/dist/command-bus/index.js +143 -127
- package/dist/command-bus/index.js.map +1 -1
- package/dist/command-bus/interceptors/index.d.ts +5 -0
- package/dist/command-bus/interceptors/index.js +22 -0
- package/dist/command-bus/interceptors/index.js.map +1 -0
- package/dist/command-bus/interceptors/interceptor.interface.d.ts +35 -0
- package/dist/command-bus/interceptors/interceptor.interface.js +3 -0
- package/dist/command-bus/interceptors/interceptor.interface.js.map +1 -0
- package/dist/command-bus/interceptors/performance-interceptor.d.ts +24 -0
- package/dist/command-bus/interceptors/performance-interceptor.js +86 -0
- package/dist/command-bus/interceptors/performance-interceptor.js.map +1 -0
- package/dist/command-bus/interceptors/performance-interceptor.spec.js +124 -0
- package/dist/command-bus/interceptors/performance-interceptor.spec.js.map +1 -0
- 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 +36 -0
- 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 +70 -0
- package/dist/command-bus/transport/message-processor.js +158 -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 +94 -0
- package/dist/command-bus/transport/redis-streams-transport.js +143 -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 +91 -0
- package/dist/command-bus/transport/stream-consumer.js +182 -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 +0 -84
- package/dist/examples/rpc.demo.js +1 -1
- 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.1.tgz +0 -0
- package/dist/shared/redis/connection-pool.d.ts +54 -0
- package/dist/shared/redis/connection-pool.js +123 -0
- package/dist/shared/redis/connection-pool.js.map +1 -0
- package/dist/shared/redis/connection-pool.spec.d.ts +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 -436
- 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 -50
- package/dist/command-bus/rpc/payload-compression.service.js +0 -215
- package/dist/command-bus/rpc/payload-compression.service.js.map +0 -1
- package/dist/command-bus/rpc/payload-compression.service.spec.js +0 -376
- 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 -621
- 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 -202
- 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 -358
- package/dist/examples/rpc-compression.demo.js.map +0 -1
- package/dist/examples/rpc-resilience.demo.d.ts +0 -15
- package/dist/examples/rpc-resilience.demo.js +0 -233
- package/dist/examples/rpc-resilience.demo.js.map +0 -1
- package/dist/pp-command-bus-1.5.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 → interceptors/performance-interceptor.spec.d.ts} +0 -0
- /package/dist/command-bus/{job/job-options-builder.spec.d.ts → serialization/msgpack-serializer.spec.d.ts} +0 -0
- /package/dist/command-bus/{job/job-processor.spec.d.ts → transport/consumer-loop.spec.d.ts} +0 -0
- /package/dist/command-bus/{queue/queue-manager.spec.d.ts → transport/message-processor.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/payload-compression.service.spec.d.ts → transport/pending-recovery.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/rpc-coordinator.spec.d.ts → transport/redis-codec.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/rpc-job-cancellation.service.spec.d.ts → transport/redis-streams-transport.spec.d.ts} +0 -0
- /package/dist/command-bus/{worker/worker-benchmark.spec.d.ts → transport/rpc-handler.spec.d.ts} +0 -0
- /package/dist/command-bus/{worker/worker-orchestrator.spec.d.ts → transport/stream-consumer.spec.d.ts} +0 -0
- /package/dist/{shared/config/base-config.spec.d.ts → command-bus/transport/stream-producer.spec.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-coordinator.spec.js","sourceRoot":"","sources":["../../../src/command-bus/rpc/rpc-coordinator.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import type { Redis } from 'ioredis';
|
|
2
|
-
import type { ILogger } from '../../shared/types';
|
|
3
|
-
/**
|
|
4
|
-
* Typ callbacka do usuwania joba z kolejki
|
|
5
|
-
* Callback jest dostarczany przez CommandBus dla zachowania luźnego powiązania
|
|
6
|
-
*/
|
|
7
|
-
export type RemoveJobCallback = (queueName: string, jobId: string) => Promise<boolean>;
|
|
8
|
-
/**
|
|
9
|
-
* Serwis zarządzający anulowaniem jobów RPC
|
|
10
|
-
*
|
|
11
|
-
* Odpowiedzialność: oznaczanie jobów jako cancelled i sprawdzanie statusu.
|
|
12
|
-
* Używany do optymalizacji zasobów - zapobiega przetwarzaniu jobów po timeout RPC.
|
|
13
|
-
*
|
|
14
|
-
* WAŻNE: Proces cancellation NIE rzuca wyjątków - jest to optymalizacja zasobów,
|
|
15
|
-
* nie kluczowa operacja. Wszystkie błędy są logowane, ale nie propagowane.
|
|
16
|
-
*
|
|
17
|
-
* Klucze Redis: rpc:cancelled:{correlationId} → "1" (TTL: 24h)
|
|
18
|
-
* Klucz jest usuwany wcześniej gdy:
|
|
19
|
-
* - Job zostanie pomyślnie usunięty z kolejki
|
|
20
|
-
* - Job zostanie pominięty przez JobProcessor
|
|
21
|
-
*/
|
|
22
|
-
export default class RpcJobCancellationService {
|
|
23
|
-
private readonly redisConnection;
|
|
24
|
-
private readonly logger;
|
|
25
|
-
/**
|
|
26
|
-
* TTL dla kluczy cancellation - 24 godziny
|
|
27
|
-
*/
|
|
28
|
-
private static readonly TTL_SECONDS;
|
|
29
|
-
/**
|
|
30
|
-
* Prefix dla kluczy Redis
|
|
31
|
-
*/
|
|
32
|
-
private static readonly KEY_PREFIX;
|
|
33
|
-
constructor(redisConnection: Redis, logger: ILogger);
|
|
34
|
-
/**
|
|
35
|
-
* Oznacza job RPC jako anulowany
|
|
36
|
-
* Ustawia klucz w Redis z TTL 24h
|
|
37
|
-
*
|
|
38
|
-
* NIE rzuca wyjątków - loguje błędy
|
|
39
|
-
*
|
|
40
|
-
* @param correlationId - ID korelacji RPC (command.__id)
|
|
41
|
-
*/
|
|
42
|
-
markAsCancelled(correlationId: string): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Sprawdza czy job RPC został anulowany
|
|
45
|
-
*
|
|
46
|
-
* Zwraca false w przypadku błędu Redis (graceful degradation)
|
|
47
|
-
* - lepsza nadmiarowość niż blokowanie przetwarzania
|
|
48
|
-
*
|
|
49
|
-
* @param correlationId - ID korelacji RPC (command.__id)
|
|
50
|
-
* @returns true jeśli job jest anulowany, false w przeciwnym razie
|
|
51
|
-
*/
|
|
52
|
-
isCancelled(correlationId: string): Promise<boolean>;
|
|
53
|
-
/**
|
|
54
|
-
* Usuwa flagę cancellation z Redis
|
|
55
|
-
* Wywoływane po:
|
|
56
|
-
* - pomyślnym usunięciu joba z kolejki
|
|
57
|
-
* - pominięciu joba przez JobProcessor
|
|
58
|
-
*
|
|
59
|
-
* NIE rzuca wyjątków - loguje błędy
|
|
60
|
-
*
|
|
61
|
-
* @param correlationId - ID korelacji RPC (command.__id)
|
|
62
|
-
*/
|
|
63
|
-
clearCancellation(correlationId: string): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* Próbuje usunąć job z kolejki używając dostarczonego callbacka
|
|
66
|
-
*
|
|
67
|
-
* Callback jest dostarczany przez CommandBus dla zachowania luźnego powiązania
|
|
68
|
-
* (nie mamy bezpośredniej zależności na QueueManager)
|
|
69
|
-
*
|
|
70
|
-
* NIE rzuca wyjątków - loguje błędy, zwraca boolean sukcesu
|
|
71
|
-
*
|
|
72
|
-
* @param jobId - ID joba w BullMQ
|
|
73
|
-
* @param queueName - Nazwa kolejki
|
|
74
|
-
* @param removeCallback - Callback do usunięcia joba
|
|
75
|
-
* @returns true jeśli job usunięty, false w przeciwnym razie
|
|
76
|
-
*/
|
|
77
|
-
tryRemoveJob(jobId: string, queueName: string, removeCallback: RemoveJobCallback): Promise<boolean>;
|
|
78
|
-
/**
|
|
79
|
-
* Buduje klucz Redis dla danego correlationId
|
|
80
|
-
*/
|
|
81
|
-
private buildKey;
|
|
82
|
-
}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
/**
|
|
13
|
-
* Serwis zarządzający anulowaniem jobów RPC
|
|
14
|
-
*
|
|
15
|
-
* Odpowiedzialność: oznaczanie jobów jako cancelled i sprawdzanie statusu.
|
|
16
|
-
* Używany do optymalizacji zasobów - zapobiega przetwarzaniu jobów po timeout RPC.
|
|
17
|
-
*
|
|
18
|
-
* WAŻNE: Proces cancellation NIE rzuca wyjątków - jest to optymalizacja zasobów,
|
|
19
|
-
* nie kluczowa operacja. Wszystkie błędy są logowane, ale nie propagowane.
|
|
20
|
-
*
|
|
21
|
-
* Klucze Redis: rpc:cancelled:{correlationId} → "1" (TTL: 24h)
|
|
22
|
-
* Klucz jest usuwany wcześniej gdy:
|
|
23
|
-
* - Job zostanie pomyślnie usunięty z kolejki
|
|
24
|
-
* - Job zostanie pominięty przez JobProcessor
|
|
25
|
-
*/
|
|
26
|
-
class RpcJobCancellationService {
|
|
27
|
-
constructor(redisConnection, logger) {
|
|
28
|
-
this.redisConnection = redisConnection;
|
|
29
|
-
this.logger = logger;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Oznacza job RPC jako anulowany
|
|
33
|
-
* Ustawia klucz w Redis z TTL 24h
|
|
34
|
-
*
|
|
35
|
-
* NIE rzuca wyjątków - loguje błędy
|
|
36
|
-
*
|
|
37
|
-
* @param correlationId - ID korelacji RPC (command.__id)
|
|
38
|
-
*/
|
|
39
|
-
markAsCancelled(correlationId) {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
const key = this.buildKey(correlationId);
|
|
42
|
-
try {
|
|
43
|
-
yield this.redisConnection.set(key, '1', 'EX', RpcJobCancellationService.TTL_SECONDS);
|
|
44
|
-
this.logger.debug('Oznaczono RPC jako anulowane', {
|
|
45
|
-
correlationId,
|
|
46
|
-
key,
|
|
47
|
-
ttlSeconds: RpcJobCancellationService.TTL_SECONDS,
|
|
48
|
-
timestamp: new Date().toISOString(),
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
this.logger.warn('Błąd oznaczania RPC jako anulowane', {
|
|
53
|
-
correlationId,
|
|
54
|
-
key,
|
|
55
|
-
error: error instanceof Error ? error.message : String(error),
|
|
56
|
-
timestamp: new Date().toISOString(),
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Sprawdza czy job RPC został anulowany
|
|
63
|
-
*
|
|
64
|
-
* Zwraca false w przypadku błędu Redis (graceful degradation)
|
|
65
|
-
* - lepsza nadmiarowość niż blokowanie przetwarzania
|
|
66
|
-
*
|
|
67
|
-
* @param correlationId - ID korelacji RPC (command.__id)
|
|
68
|
-
* @returns true jeśli job jest anulowany, false w przeciwnym razie
|
|
69
|
-
*/
|
|
70
|
-
isCancelled(correlationId) {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const key = this.buildKey(correlationId);
|
|
73
|
-
try {
|
|
74
|
-
const exists = yield this.redisConnection.exists(key);
|
|
75
|
-
return exists === 1;
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
this.logger.warn('Błąd sprawdzania cancellation RPC - graceful degradation', {
|
|
79
|
-
correlationId,
|
|
80
|
-
key,
|
|
81
|
-
error: error instanceof Error ? error.message : String(error),
|
|
82
|
-
timestamp: new Date().toISOString(),
|
|
83
|
-
});
|
|
84
|
-
// Graceful degradation - gdy Redis niedostępny, pozwól na przetworzenie
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Usuwa flagę cancellation z Redis
|
|
91
|
-
* Wywoływane po:
|
|
92
|
-
* - pomyślnym usunięciu joba z kolejki
|
|
93
|
-
* - pominięciu joba przez JobProcessor
|
|
94
|
-
*
|
|
95
|
-
* NIE rzuca wyjątków - loguje błędy
|
|
96
|
-
*
|
|
97
|
-
* @param correlationId - ID korelacji RPC (command.__id)
|
|
98
|
-
*/
|
|
99
|
-
clearCancellation(correlationId) {
|
|
100
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
const key = this.buildKey(correlationId);
|
|
102
|
-
try {
|
|
103
|
-
yield this.redisConnection.del(key);
|
|
104
|
-
this.logger.debug('Usunięto flagę cancellation RPC', {
|
|
105
|
-
correlationId,
|
|
106
|
-
key,
|
|
107
|
-
timestamp: new Date().toISOString(),
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
catch (error) {
|
|
111
|
-
this.logger.warn('Błąd usuwania flagi cancellation RPC', {
|
|
112
|
-
correlationId,
|
|
113
|
-
key,
|
|
114
|
-
error: error instanceof Error ? error.message : String(error),
|
|
115
|
-
timestamp: new Date().toISOString(),
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Próbuje usunąć job z kolejki używając dostarczonego callbacka
|
|
122
|
-
*
|
|
123
|
-
* Callback jest dostarczany przez CommandBus dla zachowania luźnego powiązania
|
|
124
|
-
* (nie mamy bezpośredniej zależności na QueueManager)
|
|
125
|
-
*
|
|
126
|
-
* NIE rzuca wyjątków - loguje błędy, zwraca boolean sukcesu
|
|
127
|
-
*
|
|
128
|
-
* @param jobId - ID joba w BullMQ
|
|
129
|
-
* @param queueName - Nazwa kolejki
|
|
130
|
-
* @param removeCallback - Callback do usunięcia joba
|
|
131
|
-
* @returns true jeśli job usunięty, false w przeciwnym razie
|
|
132
|
-
*/
|
|
133
|
-
tryRemoveJob(jobId, queueName, removeCallback) {
|
|
134
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
try {
|
|
136
|
-
const removed = yield removeCallback(queueName, jobId);
|
|
137
|
-
if (removed) {
|
|
138
|
-
this.logger.debug('Job usunięty z kolejki przez cancellation service', {
|
|
139
|
-
jobId,
|
|
140
|
-
queueName,
|
|
141
|
-
timestamp: new Date().toISOString(),
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
this.logger.debug('Nie udało się usunąć joba (prawdopodobnie już przetwarzany)', {
|
|
146
|
-
jobId,
|
|
147
|
-
queueName,
|
|
148
|
-
timestamp: new Date().toISOString(),
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
return removed;
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
this.logger.debug('Błąd podczas próby usunięcia joba z kolejki', {
|
|
155
|
-
jobId,
|
|
156
|
-
queueName,
|
|
157
|
-
error: error instanceof Error ? error.message : String(error),
|
|
158
|
-
timestamp: new Date().toISOString(),
|
|
159
|
-
});
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Buduje klucz Redis dla danego correlationId
|
|
166
|
-
*/
|
|
167
|
-
buildKey(correlationId) {
|
|
168
|
-
return `${RpcJobCancellationService.KEY_PREFIX}${correlationId}`;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* TTL dla kluczy cancellation - 24 godziny
|
|
173
|
-
*/
|
|
174
|
-
RpcJobCancellationService.TTL_SECONDS = 86400;
|
|
175
|
-
/**
|
|
176
|
-
* Prefix dla kluczy Redis
|
|
177
|
-
*/
|
|
178
|
-
RpcJobCancellationService.KEY_PREFIX = 'rpc:cancelled:';
|
|
179
|
-
exports.default = RpcJobCancellationService;
|
|
180
|
-
//# sourceMappingURL=rpc-job-cancellation.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-job-cancellation.service.js","sourceRoot":"","sources":["../../../src/command-bus/rpc/rpc-job-cancellation.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const rpc_job_cancellation_service_1 = __importDefault(require("./rpc-job-cancellation.service"));
|
|
16
|
-
/**
|
|
17
|
-
* Testy dla RpcJobCancellationService
|
|
18
|
-
* Testuje zarządzanie stanem cancellation jobów RPC:
|
|
19
|
-
* - oznaczanie jako cancelled
|
|
20
|
-
* - sprawdzanie statusu
|
|
21
|
-
* - czyszczenie flagi
|
|
22
|
-
* - próba usunięcia joba przez callback
|
|
23
|
-
*
|
|
24
|
-
* UWAGA: Serwis NIE rzuca wyjątków - wszystkie błędy są logowane
|
|
25
|
-
*/
|
|
26
|
-
describe('RpcJobCancellationService', () => {
|
|
27
|
-
let service;
|
|
28
|
-
let mockRedis;
|
|
29
|
-
let mockLogger;
|
|
30
|
-
beforeEach(() => {
|
|
31
|
-
mockRedis = {
|
|
32
|
-
set: jest.fn().mockResolvedValue('OK'),
|
|
33
|
-
get: jest.fn().mockResolvedValue(null),
|
|
34
|
-
del: jest.fn().mockResolvedValue(1),
|
|
35
|
-
exists: jest.fn().mockResolvedValue(0),
|
|
36
|
-
};
|
|
37
|
-
mockLogger = {
|
|
38
|
-
debug: jest.fn(),
|
|
39
|
-
log: jest.fn(),
|
|
40
|
-
warn: jest.fn(),
|
|
41
|
-
error: jest.fn(),
|
|
42
|
-
};
|
|
43
|
-
service = new rpc_job_cancellation_service_1.default(mockRedis, mockLogger);
|
|
44
|
-
});
|
|
45
|
-
describe('markAsCancelled()', () => {
|
|
46
|
-
it('ustawia klucz Redis z TTL 24h', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
-
// Arrange
|
|
48
|
-
const correlationId = 'test-correlation-123';
|
|
49
|
-
// Act
|
|
50
|
-
yield service.markAsCancelled(correlationId);
|
|
51
|
-
// Assert
|
|
52
|
-
expect(mockRedis.set).toHaveBeenCalledWith('rpc:cancelled:test-correlation-123', '1', 'EX', 86400);
|
|
53
|
-
expect(mockLogger.debug).toHaveBeenCalledWith(expect.stringContaining('Oznaczono RPC jako anulowane'), expect.objectContaining({ correlationId }));
|
|
54
|
-
}));
|
|
55
|
-
it('nie rzuca wyjątku gdy Redis zwraca błąd', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
-
// Arrange
|
|
57
|
-
const correlationId = 'test-error-456';
|
|
58
|
-
mockRedis.set.mockRejectedValue(new Error('Redis connection failed'));
|
|
59
|
-
// Act - nie powinno rzucić
|
|
60
|
-
yield expect(service.markAsCancelled(correlationId)).resolves.not.toThrow();
|
|
61
|
-
// Assert - powinno zalogować błąd
|
|
62
|
-
expect(mockLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Błąd oznaczania RPC jako anulowane'), expect.objectContaining({
|
|
63
|
-
correlationId,
|
|
64
|
-
error: 'Redis connection failed',
|
|
65
|
-
}));
|
|
66
|
-
}));
|
|
67
|
-
it('loguje debug przy sukcesie', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
|
-
// Arrange
|
|
69
|
-
const correlationId = 'success-123';
|
|
70
|
-
mockRedis.set.mockResolvedValue('OK');
|
|
71
|
-
// Act
|
|
72
|
-
yield service.markAsCancelled(correlationId);
|
|
73
|
-
// Assert
|
|
74
|
-
expect(mockLogger.debug).toHaveBeenCalledWith(expect.stringContaining('Oznaczono RPC jako anulowane'), expect.objectContaining({
|
|
75
|
-
correlationId,
|
|
76
|
-
ttlSeconds: 86400,
|
|
77
|
-
}));
|
|
78
|
-
}));
|
|
79
|
-
});
|
|
80
|
-
describe('isCancelled()', () => {
|
|
81
|
-
it('zwraca true gdy klucz istnieje', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
82
|
-
// Arrange
|
|
83
|
-
const correlationId = 'cancelled-job-789';
|
|
84
|
-
mockRedis.exists.mockResolvedValue(1);
|
|
85
|
-
// Act
|
|
86
|
-
const result = yield service.isCancelled(correlationId);
|
|
87
|
-
// Assert
|
|
88
|
-
expect(result).toBe(true);
|
|
89
|
-
expect(mockRedis.exists).toHaveBeenCalledWith('rpc:cancelled:cancelled-job-789');
|
|
90
|
-
}));
|
|
91
|
-
it('zwraca false gdy klucz nie istnieje', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
|
-
// Arrange
|
|
93
|
-
const correlationId = 'active-job-101';
|
|
94
|
-
mockRedis.exists.mockResolvedValue(0);
|
|
95
|
-
// Act
|
|
96
|
-
const result = yield service.isCancelled(correlationId);
|
|
97
|
-
// Assert
|
|
98
|
-
expect(result).toBe(false);
|
|
99
|
-
expect(mockRedis.exists).toHaveBeenCalledWith('rpc:cancelled:active-job-101');
|
|
100
|
-
}));
|
|
101
|
-
it('zwraca false gdy Redis zwraca błąd (graceful degradation)', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
102
|
-
// Arrange
|
|
103
|
-
const correlationId = 'error-job-202';
|
|
104
|
-
mockRedis.exists.mockRejectedValue(new Error('Redis timeout'));
|
|
105
|
-
// Act
|
|
106
|
-
const result = yield service.isCancelled(correlationId);
|
|
107
|
-
// Assert
|
|
108
|
-
expect(result).toBe(false); // Graceful degradation
|
|
109
|
-
expect(mockLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Błąd sprawdzania cancellation'), expect.objectContaining({
|
|
110
|
-
correlationId,
|
|
111
|
-
error: 'Redis timeout',
|
|
112
|
-
}));
|
|
113
|
-
}));
|
|
114
|
-
it('nie rzuca wyjątku przy błędzie Redis', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
115
|
-
// Arrange
|
|
116
|
-
const correlationId = 'fail-job-303';
|
|
117
|
-
mockRedis.exists.mockRejectedValue(new Error('Connection refused'));
|
|
118
|
-
// Act & Assert - nie powinno rzucić
|
|
119
|
-
yield expect(service.isCancelled(correlationId)).resolves.toBe(false);
|
|
120
|
-
}));
|
|
121
|
-
});
|
|
122
|
-
describe('clearCancellation()', () => {
|
|
123
|
-
it('usuwa klucz z Redis', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
124
|
-
// Arrange
|
|
125
|
-
const correlationId = 'clear-job-404';
|
|
126
|
-
mockRedis.del.mockResolvedValue(1);
|
|
127
|
-
// Act
|
|
128
|
-
yield service.clearCancellation(correlationId);
|
|
129
|
-
// Assert
|
|
130
|
-
expect(mockRedis.del).toHaveBeenCalledWith('rpc:cancelled:clear-job-404');
|
|
131
|
-
expect(mockLogger.debug).toHaveBeenCalledWith(expect.stringContaining('Usunięto flagę cancellation'), expect.objectContaining({ correlationId }));
|
|
132
|
-
}));
|
|
133
|
-
it('nie rzuca wyjątku gdy klucz nie istnieje', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
134
|
-
// Arrange
|
|
135
|
-
const correlationId = 'nonexistent-job-505';
|
|
136
|
-
mockRedis.del.mockResolvedValue(0); // Klucz nie istniał
|
|
137
|
-
// Act & Assert
|
|
138
|
-
yield expect(service.clearCancellation(correlationId)).resolves.not.toThrow();
|
|
139
|
-
}));
|
|
140
|
-
it('nie rzuca wyjątku gdy Redis zwraca błąd', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
141
|
-
// Arrange
|
|
142
|
-
const correlationId = 'error-clear-606';
|
|
143
|
-
mockRedis.del.mockRejectedValue(new Error('Redis error'));
|
|
144
|
-
// Act & Assert - nie powinno rzucić
|
|
145
|
-
yield expect(service.clearCancellation(correlationId)).resolves.not.toThrow();
|
|
146
|
-
// Assert - powinno zalogować
|
|
147
|
-
expect(mockLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Błąd usuwania flagi cancellation'), expect.objectContaining({
|
|
148
|
-
correlationId,
|
|
149
|
-
error: 'Redis error',
|
|
150
|
-
}));
|
|
151
|
-
}));
|
|
152
|
-
});
|
|
153
|
-
describe('tryRemoveJob()', () => {
|
|
154
|
-
it('wywołuje callback i zwraca true gdy sukces', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
155
|
-
// Arrange
|
|
156
|
-
const jobId = 'job-to-remove-707';
|
|
157
|
-
const queueName = 'TestQueue';
|
|
158
|
-
const removeCallback = jest.fn().mockResolvedValue(true);
|
|
159
|
-
// Act
|
|
160
|
-
const result = yield service.tryRemoveJob(jobId, queueName, removeCallback);
|
|
161
|
-
// Assert
|
|
162
|
-
expect(result).toBe(true);
|
|
163
|
-
expect(removeCallback).toHaveBeenCalledWith(queueName, jobId);
|
|
164
|
-
expect(mockLogger.debug).toHaveBeenCalledWith(expect.stringContaining('Job usunięty z kolejki'), expect.objectContaining({ jobId, queueName }));
|
|
165
|
-
}));
|
|
166
|
-
it('zwraca false gdy callback zwraca false (job nie istnieje)', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
167
|
-
// Arrange
|
|
168
|
-
const jobId = 'nonexistent-job-808';
|
|
169
|
-
const queueName = 'TestQueue';
|
|
170
|
-
const removeCallback = jest.fn().mockResolvedValue(false);
|
|
171
|
-
// Act
|
|
172
|
-
const result = yield service.tryRemoveJob(jobId, queueName, removeCallback);
|
|
173
|
-
// Assert
|
|
174
|
-
expect(result).toBe(false);
|
|
175
|
-
expect(removeCallback).toHaveBeenCalledWith(queueName, jobId);
|
|
176
|
-
expect(mockLogger.debug).toHaveBeenCalledWith(expect.stringContaining('Nie udało się usunąć joba'), expect.objectContaining({ jobId, queueName }));
|
|
177
|
-
}));
|
|
178
|
-
it('zwraca false gdy callback rzuca błąd', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
179
|
-
// Arrange
|
|
180
|
-
const jobId = 'error-job-909';
|
|
181
|
-
const queueName = 'TestQueue';
|
|
182
|
-
const removeCallback = jest.fn().mockRejectedValue(new Error('Queue error'));
|
|
183
|
-
// Act
|
|
184
|
-
const result = yield service.tryRemoveJob(jobId, queueName, removeCallback);
|
|
185
|
-
// Assert
|
|
186
|
-
expect(result).toBe(false);
|
|
187
|
-
expect(mockLogger.debug).toHaveBeenCalledWith(expect.stringContaining('Błąd podczas próby usunięcia joba'), expect.objectContaining({
|
|
188
|
-
jobId,
|
|
189
|
-
queueName,
|
|
190
|
-
error: 'Queue error',
|
|
191
|
-
}));
|
|
192
|
-
}));
|
|
193
|
-
it('nie rzuca wyjątku przy błędzie callback', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
194
|
-
// Arrange
|
|
195
|
-
const jobId = 'fail-job-010';
|
|
196
|
-
const queueName = 'TestQueue';
|
|
197
|
-
const removeCallback = jest.fn().mockRejectedValue(new Error('Network error'));
|
|
198
|
-
// Act & Assert - nie powinno rzucić
|
|
199
|
-
yield expect(service.tryRemoveJob(jobId, queueName, removeCallback)).resolves.toBe(false);
|
|
200
|
-
}));
|
|
201
|
-
});
|
|
202
|
-
describe('integracja - scenariusze użycia', () => {
|
|
203
|
-
it('pełny cykl: mark → check → clear', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
204
|
-
// Arrange
|
|
205
|
-
const correlationId = 'full-cycle-111';
|
|
206
|
-
mockRedis.set.mockResolvedValue('OK');
|
|
207
|
-
mockRedis.exists.mockResolvedValue(1);
|
|
208
|
-
mockRedis.del.mockResolvedValue(1);
|
|
209
|
-
// Act & Assert
|
|
210
|
-
// 1. Oznacz jako cancelled
|
|
211
|
-
yield service.markAsCancelled(correlationId);
|
|
212
|
-
expect(mockRedis.set).toHaveBeenCalled();
|
|
213
|
-
// 2. Sprawdź czy cancelled
|
|
214
|
-
const isCancelled = yield service.isCancelled(correlationId);
|
|
215
|
-
expect(isCancelled).toBe(true);
|
|
216
|
-
// 3. Wyczyść flagę
|
|
217
|
-
yield service.clearCancellation(correlationId);
|
|
218
|
-
expect(mockRedis.del).toHaveBeenCalled();
|
|
219
|
-
}));
|
|
220
|
-
it('scenariusz: timeout + usunięcie joba → wyczyść flagę', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
221
|
-
// Arrange
|
|
222
|
-
const correlationId = 'timeout-scenario-222';
|
|
223
|
-
const jobId = 'job-222';
|
|
224
|
-
const queueName = 'CommandQueue';
|
|
225
|
-
const removeCallback = jest.fn().mockResolvedValue(true);
|
|
226
|
-
mockRedis.set.mockResolvedValue('OK');
|
|
227
|
-
mockRedis.del.mockResolvedValue(1);
|
|
228
|
-
// Act
|
|
229
|
-
// 1. Timeout - oznacz jako cancelled
|
|
230
|
-
yield service.markAsCancelled(correlationId);
|
|
231
|
-
// 2. Spróbuj usunąć job
|
|
232
|
-
const removed = yield service.tryRemoveJob(jobId, queueName, removeCallback);
|
|
233
|
-
expect(removed).toBe(true);
|
|
234
|
-
// 3. Jeśli usunięto - wyczyść flagę
|
|
235
|
-
if (removed) {
|
|
236
|
-
yield service.clearCancellation(correlationId);
|
|
237
|
-
}
|
|
238
|
-
// Assert
|
|
239
|
-
expect(mockRedis.set).toHaveBeenCalledTimes(1);
|
|
240
|
-
expect(removeCallback).toHaveBeenCalledTimes(1);
|
|
241
|
-
expect(mockRedis.del).toHaveBeenCalledTimes(1);
|
|
242
|
-
}));
|
|
243
|
-
it('scenariusz: timeout + job już przetwarzany → flaga pozostaje dla JobProcessor', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
244
|
-
// Arrange
|
|
245
|
-
const correlationId = 'active-job-scenario-333';
|
|
246
|
-
const jobId = 'job-333';
|
|
247
|
-
const queueName = 'CommandQueue';
|
|
248
|
-
const removeCallback = jest.fn().mockResolvedValue(false); // Job już przetwarzany
|
|
249
|
-
mockRedis.set.mockResolvedValue('OK');
|
|
250
|
-
// Act
|
|
251
|
-
// 1. Timeout - oznacz jako cancelled
|
|
252
|
-
yield service.markAsCancelled(correlationId);
|
|
253
|
-
// 2. Spróbuj usunąć job - nie uda się (już przetwarzany)
|
|
254
|
-
const removed = yield service.tryRemoveJob(jobId, queueName, removeCallback);
|
|
255
|
-
expect(removed).toBe(false);
|
|
256
|
-
// 3. NIE czyścimy flagi - JobProcessor sprawdzi i pominie
|
|
257
|
-
// Assert
|
|
258
|
-
expect(mockRedis.set).toHaveBeenCalledTimes(1);
|
|
259
|
-
expect(mockRedis.del).not.toHaveBeenCalled(); // Flaga pozostaje
|
|
260
|
-
}));
|
|
261
|
-
});
|
|
262
|
-
describe('format klucza Redis', () => {
|
|
263
|
-
it('używa poprawnego prefixu dla kluczy', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
264
|
-
// Arrange
|
|
265
|
-
const correlationId = 'key-format-test';
|
|
266
|
-
// Act
|
|
267
|
-
yield service.markAsCancelled(correlationId);
|
|
268
|
-
yield service.isCancelled(correlationId);
|
|
269
|
-
yield service.clearCancellation(correlationId);
|
|
270
|
-
// Assert - wszystkie operacje używają tego samego formatu klucza
|
|
271
|
-
const expectedKey = 'rpc:cancelled:key-format-test';
|
|
272
|
-
expect(mockRedis.set).toHaveBeenCalledWith(expectedKey, expect.anything(), expect.anything(), expect.anything());
|
|
273
|
-
expect(mockRedis.exists).toHaveBeenCalledWith(expectedKey);
|
|
274
|
-
expect(mockRedis.del).toHaveBeenCalledWith(expectedKey);
|
|
275
|
-
}));
|
|
276
|
-
it('obsługuje correlationId ze specjalnymi znakami', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
277
|
-
// Arrange
|
|
278
|
-
const correlationId = 'test:with:colons-and-dashes_and_underscores';
|
|
279
|
-
// Act
|
|
280
|
-
yield service.markAsCancelled(correlationId);
|
|
281
|
-
// Assert
|
|
282
|
-
expect(mockRedis.set).toHaveBeenCalledWith('rpc:cancelled:test:with:colons-and-dashes_and_underscores', '1', 'EX', 86400);
|
|
283
|
-
}));
|
|
284
|
-
});
|
|
285
|
-
});
|
|
286
|
-
//# sourceMappingURL=rpc-job-cancellation.service.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-job-cancellation.service.spec.js","sourceRoot":"","sources":["../../../src/command-bus/rpc/rpc-job-cancellation.service.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Moduł zarządzania workerami BullMQ
|
|
3
|
-
* Eksportuje WorkerOrchestrator odpowiedzialny za lifecycle workerów,
|
|
4
|
-
* WorkerMetricsCollector dla zbierania metryk diagnostycznych
|
|
5
|
-
* oraz WorkerBenchmark dla automatycznej optymalizacji concurrency
|
|
6
|
-
*/
|
|
7
|
-
export { default as WorkerOrchestrator } from './worker-orchestrator';
|
|
8
|
-
export { default as WorkerMetricsCollector } from './worker-metrics-collector';
|
|
9
|
-
export { default as WorkerBenchmark } from './worker-benchmark';
|
|
10
|
-
export type { BenchmarkResult } from './worker-benchmark';
|