exodus-framework 2.1.1049 → 2.1.1050

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.
@@ -17,6 +17,7 @@ declare class RabbitMQService extends Service {
17
17
  private attempts;
18
18
  private exchangeName;
19
19
  private queueName;
20
+ private workersQueueName;
20
21
  private isReconnecting;
21
22
  private isConnected;
22
23
  onServiceInit(): Promise<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,EACtB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAItB;;;;;;GAMG;AACH,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAgC;IACvD,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,aAAa;IAeb,OAAO;IAMP,eAAe;IAMf,WAAW;IAKX,OAAO;IA+BP,eAAe;IAkBrB,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,sBAAsB;IAKtF,OAAO,CAAC,iBAAiB;IAYzB;;;;;;;;;OASG;IACG,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACpD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC7B,aAAa,CAAC,EAAE,MAAM;IAKxB;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAChD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC7B,aAAa,CAAC,EAAE,MAAM;IAqBlB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IAoCjD,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IAiBhD,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"}
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,EACtB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAKtB;;;;;;GAMG;AACH,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,oBAAoB,CAA0D;IACtF,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAEf,aAAa;IAgBb,OAAO;IAMP,eAAe;IAWf,WAAW;IAKX,OAAO;IAgCP,eAAe;IA2BrB,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,sBAAsB;IAKtF,OAAO,CAAC,iBAAiB;IAYzB;;;;;;;;;OASG;IACG,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACpD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC7B,aAAa,CAAC,EAAE,MAAM;IAKxB;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAChD,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAC7B,aAAa,CAAC,EAAE,MAAM;IAqBlB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IA6CjD,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IAiBhD,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"}
@@ -8,6 +8,7 @@ var _amqplib = _interopRequireDefault(require("amqplib"));
8
8
  var _crypto = require("crypto");
9
9
  var _app = require("../app");
10
10
  var _service = _interopRequireDefault(require("../app/classes/service"));
11
+ var _core = require("../contracts/core");
11
12
  var _messaging = _interopRequireDefault(require("../routes/messaging"));
12
13
  var _logger = _interopRequireDefault(require("../services/logger"));
13
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -27,6 +28,7 @@ class RabbitMQService extends _service.default {
27
28
  attempts;
28
29
  exchangeName;
29
30
  queueName;
31
+ workersQueueName;
30
32
  isReconnecting = false;
31
33
  isConnected = false;
32
34
  async onServiceInit() {
@@ -37,6 +39,7 @@ class RabbitMQService extends _service.default {
37
39
  this.attempts = new Map();
38
40
  this.exchangeName = _app.Core.settings.getMessaging().exchanges.main;
39
41
  this.queueName = _app.Core.settings.getAppication().appId;
42
+ this.workersQueueName = `${this.queueName}-workers`;
40
43
  this.eventCustomListeners = new Map();
41
44
  this.mainRouter = {
42
45
  ..._messaging.default,
@@ -49,7 +52,8 @@ class RabbitMQService extends _service.default {
49
52
  }
50
53
  async onExodusStarted() {
51
54
  await super.onExodusStarted();
52
- await this.channel.consume(this.queueName, this.consumeFromQueue.bind(this), {
55
+ const queueToConsume = this.isCluster() ? this.workersQueueName : this.queueName;
56
+ await this.channel.consume(queueToConsume, this.consumeFromQueue.bind(this), {
53
57
  noAck: false
54
58
  });
55
59
  }
@@ -70,7 +74,10 @@ class RabbitMQService extends _service.default {
70
74
  await this.channel.assertExchange(mainExchanges, 'topic', {
71
75
  durable: true
72
76
  });
73
- await this.channel.assertQueue(_app.Core.settings.getAppication().appId, {
77
+ await this.channel.assertQueue(this.queueName, {
78
+ durable: true
79
+ });
80
+ await this.channel.assertQueue(this.workersQueueName, {
74
81
  durable: true
75
82
  });
76
83
  this.isConnected = true;
@@ -90,9 +97,18 @@ class RabbitMQService extends _service.default {
90
97
  if (Array.isArray(handler)) {
91
98
  const [side] = handler;
92
99
  if (this.getExecutionSide() != side) continue;
93
- await this.channel.bindQueue(this.queueName, this.exchangeName, topic);
100
+ const targetQueue = side === _core.eExecutionSide.MASTER ? this.queueName : this.workersQueueName;
101
+ await this.channel.bindQueue(targetQueue, this.exchangeName, topic);
94
102
  } else {
95
- await this.channel.bindQueue(this.queueName, this.exchangeName, topic);
103
+ if (this.isMaster()) {
104
+ await this.channel.bindQueue(this.queueName, this.exchangeName, topic);
105
+ }
106
+ }
107
+ }
108
+ for (const [topic, handler] of Object.entries(this.decoratorRouter)) {
109
+ if (handler) {
110
+ const targetQueue = this.isCluster() ? this.workersQueueName : this.queueName;
111
+ await this.channel.bindQueue(targetQueue, this.exchangeName, topic);
96
112
  }
97
113
  }
98
114
  }
@@ -164,6 +180,7 @@ class RabbitMQService extends _service.default {
164
180
  const topic = msg.fields.routingKey;
165
181
  const content = JSON.parse(msg.content.toString());
166
182
  const callBack = this.mainRouter[topic];
183
+ const decoratorCallback = this.decoratorRouter[topic];
167
184
  if (callBack) {
168
185
  if (Array.isArray(callBack)) {
169
186
  const [side, cb] = callBack;
@@ -174,6 +191,9 @@ class RabbitMQService extends _service.default {
174
191
  await callBack(content.data, () => {}, content.serviceId, content.transactionId);
175
192
  }
176
193
  }
194
+ if (decoratorCallback && typeof decoratorCallback === 'function') {
195
+ await decoratorCallback(content.data, () => {}, content.serviceId, content.transactionId);
196
+ }
177
197
  this.channel.ack(msg);
178
198
  if (this.eventCustomListeners.has(topic)) {
179
199
  const cb = this.eventCustomListeners.get(topic);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exodus-framework",
3
- "version": "2.1.1049",
3
+ "version": "2.1.1050",
4
4
  "description": "Exodus Framework",
5
5
  "author": "jhownpaixao",
6
6
  "license": "ISC",