@cargolift-cdi/util-rabbitmq 0.2.39 → 0.2.41
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.
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import { Channel, ConsumeMessage } from "amqplib";
|
|
2
2
|
import { Logger } from "@nestjs/common";
|
|
3
3
|
import { LoggerContextService } from "@cargolift-cdi/common";
|
|
4
|
+
export interface MessageProcessor {
|
|
5
|
+
system: string | undefined;
|
|
6
|
+
event: string | undefined;
|
|
7
|
+
action: string | undefined;
|
|
8
|
+
queueName: string;
|
|
9
|
+
msg: ConsumeMessage;
|
|
10
|
+
content: string;
|
|
11
|
+
header: Record<string, any>;
|
|
12
|
+
routingKey: string | undefined;
|
|
13
|
+
retries: number;
|
|
14
|
+
}
|
|
4
15
|
export interface DefaultHandlerOptions {
|
|
5
16
|
exchange: string;
|
|
6
17
|
logger: Logger;
|
|
7
18
|
loggerContext: LoggerContextService;
|
|
8
19
|
processor: {
|
|
9
|
-
process: (
|
|
20
|
+
process: (messageProcessor: MessageProcessor) => Promise<void>;
|
|
10
21
|
onSuccess: (message: string) => Promise<void>;
|
|
11
22
|
onRetry: (message: string, detail: string, stack?: string) => Promise<void>;
|
|
12
23
|
onError: (message: string, detail: string, stack?: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-message.handlers.d.ts","sourceRoot":"","sources":["../src/rabbitmq-message.handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAKL,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,oBAAoB,CAAC;IACpC,SAAS,EAAE;QACT,OAAO,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"rabbitmq-message.handlers.d.ts","sourceRoot":"","sources":["../src/rabbitmq-message.handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAKL,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,oBAAoB,CAAC;IACpC,SAAS,EAAE;QACT,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5E,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7E,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAUD,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;;;;;;EAaA;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,qBAAqB,IACvD,KAAK;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,mBAsJhF"}
|
|
@@ -24,12 +24,43 @@ export function buildDlqInfo(params) {
|
|
|
24
24
|
export function createDefaultMessageHandler(opts) {
|
|
25
25
|
return async (ctx) => {
|
|
26
26
|
const { queueName, msg, channel } = ctx;
|
|
27
|
+
const baseHeaders = msg.properties?.headers || {};
|
|
28
|
+
const routingKey = msg.fields?.routingKey;
|
|
29
|
+
const retries = baseHeaders["x-retry-count"] || 0;
|
|
30
|
+
// Deriva system e event
|
|
31
|
+
let system;
|
|
32
|
+
let event;
|
|
33
|
+
let action;
|
|
34
|
+
if (routingKey) {
|
|
35
|
+
const parts = routingKey.split(".");
|
|
36
|
+
if (parts.length >= 4 && parts[0] === "integration") {
|
|
37
|
+
system = parts[1];
|
|
38
|
+
event = parts[2];
|
|
39
|
+
action = parts[3];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
27
42
|
const seedContext = opts.loggerContext.buildRabbitContext?.(msg, {
|
|
28
43
|
application: { action: "rabbitmq.subscribe" },
|
|
29
44
|
});
|
|
30
45
|
return runWithLoggerContext(seedContext, async () => {
|
|
31
46
|
try {
|
|
32
|
-
|
|
47
|
+
opts.loggerContext.debug(`[${queueName}] Processando mensagem` + (retries > 0 ? ` [retry ${retries}]` : ""), {
|
|
48
|
+
data: {
|
|
49
|
+
rabbitmq: { queue: queueName, routingKey: msg.fields.routingKey },
|
|
50
|
+
payload: msg.content.toString("utf8"),
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
await opts.processor.process({
|
|
54
|
+
system,
|
|
55
|
+
event,
|
|
56
|
+
action,
|
|
57
|
+
queueName,
|
|
58
|
+
msg,
|
|
59
|
+
content: msg.content.toString("utf8"),
|
|
60
|
+
header: msg.properties?.headers || {},
|
|
61
|
+
routingKey,
|
|
62
|
+
retries,
|
|
63
|
+
});
|
|
33
64
|
channel.ack(msg);
|
|
34
65
|
if (opts.processor.onSuccess) {
|
|
35
66
|
await opts.processor.onSuccess(`[${queueName}] Mensagem processada com sucesso.`);
|
|
@@ -43,9 +74,9 @@ export function createDefaultMessageHandler(opts) {
|
|
|
43
74
|
});
|
|
44
75
|
if (scheduled.success) {
|
|
45
76
|
if (opts.processor.onRetry) {
|
|
46
|
-
await opts.processor.onRetry(`[${queueName}] Erro transiente: ${error.message}. Agendada nova tentativa ${scheduled.currentRetry}/${scheduled.maxRetries}
|
|
77
|
+
await opts.processor.onRetry(`[${queueName}] Erro transiente: ${error.message}. [Agendada nova tentativa ${scheduled.currentRetry}/${scheduled.maxRetries}. Fila: ${scheduled.queue}]`, error?.cause || undefined, error?.stack || undefined);
|
|
47
78
|
}
|
|
48
|
-
opts.loggerContext.warn(`[${queueName}] Erro transiente: ${error.message}. [Agendando nova tentativa ${scheduled.currentRetry}/${scheduled.maxRetries}
|
|
79
|
+
opts.loggerContext.warn(`[${queueName}] Erro transiente: ${error.message}. [Agendando nova tentativa ${scheduled.currentRetry}/${scheduled.maxRetries}. Fila: ${scheduled.queue}]`, {
|
|
49
80
|
data: {
|
|
50
81
|
rabbit: {
|
|
51
82
|
queueName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-message.handlers.js","sourceRoot":"","sources":["../src/rabbitmq-message.handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAElB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAkB,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rabbitmq-message.handlers.js","sourceRoot":"","sources":["../src/rabbitmq-message.handlers.ts"],"names":[],"mappings":"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"}
|