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.
@@ -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;
|
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"}
|
package/lib/services/rabitmq.js
CHANGED
@@ -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
|
-
|
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(
|
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
|
-
|
100
|
+
const targetQueue = side === _core.eExecutionSide.MASTER ? this.queueName : this.workersQueueName;
|
101
|
+
await this.channel.bindQueue(targetQueue, this.exchangeName, topic);
|
94
102
|
} else {
|
95
|
-
|
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);
|