exodus-framework 2.0.9798 → 2.0.9799
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.
@@ -6,6 +6,7 @@ declare class RabbitMQService extends Service {
|
|
6
6
|
channel: Channel;
|
7
7
|
private mainRouter;
|
8
8
|
private eventCustomListeners;
|
9
|
+
private attempts;
|
9
10
|
private exchangeName;
|
10
11
|
private queueName;
|
11
12
|
private isReconnecting;
|
@@ -19,6 +20,7 @@ declare class RabbitMQService extends Service {
|
|
19
20
|
private setupErrorHandles;
|
20
21
|
sendToQueue<K extends keyof TMessageQueueDataMap>(topic: K, data: TMessageQueueDataMap[K], transactionId?: string): Promise<false | `${string}-${string}-${string}-${string}-${string}`>;
|
21
22
|
consumeFromQueue(msg: client.ConsumeMessage): Promise<void>;
|
23
|
+
handlerMessageAttempt(msg: client.ConsumeMessage): void;
|
22
24
|
static registerRouter(router: TMessagingQueueEventList): void;
|
23
25
|
onTransaction<K extends keyof TMessageQueueDataMap>(topic: K, callBack: TMessagingQueueHandler<K>): void;
|
24
26
|
offTransaction<K extends keyof TMessageQueueDataMap>(topic: K): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAUtB,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,oBAAoB,CAA0D;
|
1
|
+
{"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAUtB,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,oBAAoB,CAA0D;IACtF,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAEf,oBAAoB;IAepB,cAAc;IAMd,sBAAsB;IAMtB,WAAW;IAKX,OAAO;IA+BP,eAAe;IAM5B,OAAO,CAAC,iBAAiB;IAYnB,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACpD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC7B,aAAa,CAAC,EAAE,MAAM;IAqBlB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IA4BjD,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IAgBhD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,wBAAwB;IAI/C,aAAa,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACvD,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAY9B,cAAc,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAW7D,YAAY,CACjB,CAAC,SAAS,MAAM,oBAAoB,EACpC,CAAC,SAAS,MAAM,oBAAoB,EACpC,IAAI,EAAE;QACN,IAAI,EAAE;YAAE,KAAK,EAAE,CAAC,CAAC;YAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAA;SAAE,CAAC;QAClD,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,CAAC;YACT,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACpC,SAAS,EAAE,MAAM,IAAI,CAAC;YACtB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH;CAwBF;AAED,eAAe,eAAe,CAAC"}
|
package/lib/services/rabitmq.js
CHANGED
@@ -23,6 +23,7 @@ class RabbitMQService extends _service.default {
|
|
23
23
|
channel;
|
24
24
|
mainRouter;
|
25
25
|
eventCustomListeners;
|
26
|
+
attempts;
|
26
27
|
exchangeName;
|
27
28
|
queueName;
|
28
29
|
isReconnecting = false; // Flag para evitar múltiplas tentativas simultâneas de reconexão
|
@@ -35,6 +36,7 @@ class RabbitMQService extends _service.default {
|
|
35
36
|
//Start params
|
36
37
|
this.startAttemptDelay = 5 * 1000;
|
37
38
|
this.maxStartAttempts = 3;
|
39
|
+
this.attempts = new Map();
|
38
40
|
this.exchangeName = _app.Core.settings.getMessaging().exchanges.main;
|
39
41
|
this.queueName = _app.Core.settings.getAppication().appId;
|
40
42
|
this.eventCustomListeners = new Map();
|
@@ -141,13 +143,23 @@ class RabbitMQService extends _service.default {
|
|
141
143
|
cb(content.data, () => {}, content.serviceId, content.transactionId);
|
142
144
|
}
|
143
145
|
} catch (error) {
|
144
|
-
|
145
|
-
this.channel.nack(msg, false, true); // Reenfileira para nova tentativa
|
146
|
-
this.log(`Message requeue: ${msg.fields.routingKey}`, 'info');
|
147
|
-
}, 3000);
|
146
|
+
this.handlerMessageAttempt(msg);
|
148
147
|
new _app.ErrorHandler('Error on parsing message from queue', error);
|
149
148
|
}
|
150
149
|
}
|
150
|
+
handlerMessageAttempt(msg) {
|
151
|
+
const attempts = this.attempts.get(msg.properties.messageId) || 0;
|
152
|
+
if (attempts > 3) {
|
153
|
+
this.log(`Message ${msg.properties.messageId} failed after 3 attempts`, 'danger');
|
154
|
+
this.channel.ack(msg);
|
155
|
+
this.attempts.delete(msg.properties.messageId);
|
156
|
+
return;
|
157
|
+
}
|
158
|
+
setTimeout(() => {
|
159
|
+
this.channel.nack(msg, false, true); // Reenfileira para nova tentativa
|
160
|
+
this.log(`Message requeue: ${msg.fields.routingKey}`, 'info');
|
161
|
+
}, 3000);
|
162
|
+
}
|
151
163
|
static registerRouter(router) {
|
152
164
|
this.getService().mainRouter = router;
|
153
165
|
}
|