@cargolift-cdi/util-rabbitmq 0.2.47 → 0.2.49
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 +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;AAG/B,OAAO,EAAE,mBAAmB,EAAa,MAAM,sBAAsB,CAAC;AAEtE,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,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACvH,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACxH,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,
|
|
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;AAG/B,OAAO,EAAE,mBAAmB,EAAa,MAAM,sBAAsB,CAAC;AAEtE,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,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACvH,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACxH,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,mBA0LhF"}
|
|
@@ -50,6 +50,7 @@ export function createDefaultMessageHandler(opts) {
|
|
|
50
50
|
payload: msg.content.toString("utf8"),
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
|
+
// Processa a mensagem usando o processador
|
|
53
54
|
await opts.processor.process({
|
|
54
55
|
system,
|
|
55
56
|
event,
|
|
@@ -61,18 +62,24 @@ export function createDefaultMessageHandler(opts) {
|
|
|
61
62
|
routingKey,
|
|
62
63
|
retries,
|
|
63
64
|
});
|
|
65
|
+
// Acknowledges a mensagem após processamento bem-sucedido
|
|
64
66
|
channel.ack(msg);
|
|
67
|
+
// Chama onSuccess no processador da fila
|
|
65
68
|
if (opts.processor.onSuccess) {
|
|
66
69
|
await opts.processor.onSuccess(`Mensagem processada com sucesso.`);
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
catch (error) {
|
|
70
73
|
const errorClassification = classifyError(error);
|
|
74
|
+
// -----------------------------------------------------------
|
|
75
|
+
// Agendamento de retry para erros transientes (application e business)
|
|
76
|
+
// -----------------------------------------------------------
|
|
71
77
|
if (errorClassification === "application" || errorClassification === "business") {
|
|
72
78
|
const scheduled = scheduleTransientRetry(channel, msg, opts.loggerContext, {
|
|
73
79
|
inboundExchange: opts.exchange,
|
|
74
80
|
});
|
|
75
81
|
if (scheduled.success) {
|
|
82
|
+
// Chama onRetry no processador da fila
|
|
76
83
|
if (opts.processor.onRetry) {
|
|
77
84
|
await opts.processor.onRetry(error?.message, error?.cause || undefined, error?.stack || undefined, errorClassification);
|
|
78
85
|
}
|
|
@@ -92,6 +99,10 @@ export function createDefaultMessageHandler(opts) {
|
|
|
92
99
|
return;
|
|
93
100
|
}
|
|
94
101
|
}
|
|
102
|
+
// -----------------------------------------------------------
|
|
103
|
+
// Se não for possível agendar retry, envia para DLQ
|
|
104
|
+
// -----------------------------------------------------------
|
|
105
|
+
// Deriva informações da DLQ
|
|
95
106
|
const { dlxExchange, dlqRoutingKey, system, event, action } = buildDlqInfo({
|
|
96
107
|
baseExchange: opts.exchange,
|
|
97
108
|
queueName,
|
|
@@ -111,28 +122,50 @@ export function createDefaultMessageHandler(opts) {
|
|
|
111
122
|
default:
|
|
112
123
|
msgAction = `${error.message} [Todas tentativas falharam, encaminhando para DLQ.]`;
|
|
113
124
|
}
|
|
114
|
-
//
|
|
125
|
+
// Chama onError no processador da fila antes de publicar na DLQ
|
|
115
126
|
if (opts.processor.onError) {
|
|
116
127
|
await opts.processor.onError(msgAction, error?.cause || undefined, error?.stack || undefined, errorClassification);
|
|
117
128
|
}
|
|
118
|
-
//
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
// Loga o erro antes de enviar para DLQ
|
|
130
|
+
if (errorClassification === "business" || errorClassification === "business_fatal") {
|
|
131
|
+
opts.loggerContext.businessError(`[${queueName}] ${msgAction}`, {
|
|
132
|
+
data: {
|
|
133
|
+
rabbit: {
|
|
134
|
+
exchange: dlxExchange,
|
|
135
|
+
routing_key: dlqRoutingKey,
|
|
136
|
+
system,
|
|
137
|
+
event,
|
|
138
|
+
action,
|
|
139
|
+
},
|
|
127
140
|
},
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
141
|
+
error: {
|
|
142
|
+
message: error?.toString() || String(error),
|
|
143
|
+
cause: error?.cause || undefined,
|
|
144
|
+
type: errorClassification,
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
opts.loggerContext.error(`[${queueName}] ${msgAction}`, {
|
|
150
|
+
data: {
|
|
151
|
+
rabbit: {
|
|
152
|
+
exchange: dlxExchange,
|
|
153
|
+
routing_key: dlqRoutingKey,
|
|
154
|
+
system,
|
|
155
|
+
event,
|
|
156
|
+
action,
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
error: {
|
|
160
|
+
message: error?.toString() || String(error),
|
|
161
|
+
cause: error?.cause || undefined,
|
|
162
|
+
type: errorClassification,
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
// -----------------------------------------------------------
|
|
167
|
+
// Publica na DLQ
|
|
168
|
+
// -----------------------------------------------------------
|
|
136
169
|
try {
|
|
137
170
|
publishToDlqAndAck(channel, msg, opts.loggerContext, error, dlxExchange, dlqRoutingKey, {
|
|
138
171
|
noLoggerError: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-message.handlers.js","sourceRoot":"","sources":["../src/rabbitmq-message.handlers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rabbitmq-message.handlers.js","sourceRoot":"","sources":["../src/rabbitmq-message.handlers.ts"],"names":[],"mappings":"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"}
|