exodus-framework 2.1.1048 → 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,12 +17,12 @@ 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>;
23
24
  onStart(): Promise<boolean>;
24
25
  onExodusStarted(): Promise<void>;
25
- onExodusMasterStarted(): Promise<void>;
26
26
  onStartFail(): Promise<void>;
27
27
  connect(): Promise<boolean>;
28
28
  registerHandles(): 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,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,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,13 +52,11 @@ 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
  }
56
- async onExodusMasterStarted() {
57
- await super.onExodusMasterStarted();
58
- }
59
60
  async onStartFail() {
60
61
  await super.onStartFail();
61
62
  this.log(`Not possible to connect RabitMQ`, 'danger');
@@ -73,7 +74,10 @@ class RabbitMQService extends _service.default {
73
74
  await this.channel.assertExchange(mainExchanges, 'topic', {
74
75
  durable: true
75
76
  });
76
- 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, {
77
81
  durable: true
78
82
  });
79
83
  this.isConnected = true;
@@ -93,9 +97,18 @@ class RabbitMQService extends _service.default {
93
97
  if (Array.isArray(handler)) {
94
98
  const [side] = handler;
95
99
  if (this.getExecutionSide() != side) continue;
96
- 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);
97
102
  } else {
98
- 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);
99
112
  }
100
113
  }
101
114
  }
@@ -167,15 +180,19 @@ class RabbitMQService extends _service.default {
167
180
  const topic = msg.fields.routingKey;
168
181
  const content = JSON.parse(msg.content.toString());
169
182
  const callBack = this.mainRouter[topic];
183
+ const decoratorCallback = this.decoratorRouter[topic];
170
184
  if (callBack) {
171
185
  if (Array.isArray(callBack)) {
172
186
  const [side, cb] = callBack;
173
187
  if (this.getExecutionSide() === side) {
174
188
  await cb(content.data, () => {}, content.serviceId, content.transactionId);
175
189
  }
190
+ } else {
191
+ await callBack(content.data, () => {}, content.serviceId, content.transactionId);
176
192
  }
177
- } else {
178
- await callBack(content.data, () => {}, content.serviceId, content.transactionId);
193
+ }
194
+ if (decoratorCallback && typeof decoratorCallback === 'function') {
195
+ await decoratorCallback(content.data, () => {}, content.serviceId, content.transactionId);
179
196
  }
180
197
  this.channel.ack(msg);
181
198
  if (this.eventCustomListeners.has(topic)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exodus-framework",
3
- "version": "2.1.1048",
3
+ "version": "2.1.1050",
4
4
  "description": "Exodus Framework",
5
5
  "author": "jhownpaixao",
6
6
  "license": "ISC",