starta.microservice 0.1.4707 → 0.1.4709
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,4 +1,3 @@
|
|
|
1
|
-
import AWS from 'aws-sdk';
|
|
2
1
|
import ServerLogger from '../../adapters/logger';
|
|
3
2
|
import { IMessageBroker } from './types';
|
|
4
3
|
declare class SnsSqs implements IMessageBroker {
|
|
@@ -9,7 +8,7 @@ declare class SnsSqs implements IMessageBroker {
|
|
|
9
8
|
checkLiveness(): Promise<boolean>;
|
|
10
9
|
disconnect(): Promise<void>;
|
|
11
10
|
emitEvent(topicName: string, eventData: Object): Promise<void>;
|
|
12
|
-
consume(topicName: string, queueName: string, onMessage: (msg:
|
|
11
|
+
consume(topicName: string, queueName: string, onMessage: (msg: any, { logger }?: {
|
|
13
12
|
logger: ServerLogger;
|
|
14
13
|
}) => Promise<void>): Promise<void>;
|
|
15
14
|
private createTopic;
|
|
@@ -22,7 +22,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
22
22
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
|
-
var _SnsSqs_logger, _SnsSqs_snsClient, _SnsSqs_sqsClient, _SnsSqs_createdTopics, _SnsSqs_createdQueues;
|
|
25
|
+
var _SnsSqs_logger, _SnsSqs_snsClient, _SnsSqs_sqsClient, _SnsSqs_createdTopics, _SnsSqs_createdQueues, _SnsSqs_isStopRequested, _SnsSqs_promises;
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
const aws_sdk_1 = __importDefault(require("aws-sdk"));
|
|
28
28
|
const config_1 = __importDefault(require("../../config"));
|
|
@@ -40,6 +40,8 @@ class SnsSqs {
|
|
|
40
40
|
_SnsSqs_sqsClient.set(this, void 0);
|
|
41
41
|
_SnsSqs_createdTopics.set(this, new Set());
|
|
42
42
|
_SnsSqs_createdQueues.set(this, new Set());
|
|
43
|
+
_SnsSqs_isStopRequested.set(this, false);
|
|
44
|
+
_SnsSqs_promises.set(this, void 0);
|
|
43
45
|
__classPrivateFieldSet(this, _SnsSqs_logger, logger, "f");
|
|
44
46
|
__classPrivateFieldSet(this, _SnsSqs_snsClient, new aws_sdk_1.default.SNS(), "f");
|
|
45
47
|
__classPrivateFieldSet(this, _SnsSqs_sqsClient, new aws_sdk_1.default.SQS(), "f");
|
|
@@ -96,7 +98,10 @@ class SnsSqs {
|
|
|
96
98
|
}
|
|
97
99
|
disconnect() {
|
|
98
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
|
|
101
|
+
__classPrivateFieldSet(this, _SnsSqs_isStopRequested, true, "f");
|
|
102
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Disconnect from SNS and SQS called, waiting for " + __classPrivateFieldGet(this, _SnsSqs_promises, "f").length + " consumers to disconnect");
|
|
103
|
+
yield Promise.all(__classPrivateFieldGet(this, _SnsSqs_promises, "f"));
|
|
104
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Disconnected from SNS and SQS called");
|
|
100
105
|
});
|
|
101
106
|
}
|
|
102
107
|
emitEvent(topicName, eventData) {
|
|
@@ -135,48 +140,53 @@ class SnsSqs {
|
|
|
135
140
|
queueName = `${config_1.default.environment}-${queueName}`;
|
|
136
141
|
const { queueUrl } = yield this.createQueueWithDLQ(queueName);
|
|
137
142
|
yield this.subscribeQueueToTopic(queueName, queueUrl, topicName);
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
143
|
+
const consumeLoop = () => __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
while (!__classPrivateFieldGet(this, _SnsSqs_isStopRequested, "f")) {
|
|
145
|
+
const params = {
|
|
146
|
+
QueueUrl: queueUrl,
|
|
147
|
+
WaitTimeSeconds: 20,
|
|
148
|
+
VisibilityTimeout: 60,
|
|
149
|
+
MaxNumberOfMessages: 1
|
|
150
|
+
};
|
|
151
|
+
const data = yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").receiveMessage(params).promise();
|
|
152
|
+
if (data.Messages) {
|
|
153
|
+
for (const message of data.Messages) {
|
|
154
|
+
const messageBody = JSON.parse(message.Body);
|
|
155
|
+
const attributes = messageBody.MessageAttributes;
|
|
156
|
+
if (attributes.correlationId) {
|
|
157
|
+
executionContext_1.default.setCorrelationId(attributes.correlationId.Value);
|
|
158
|
+
}
|
|
159
|
+
if (attributes.authorizedUserLogin) {
|
|
160
|
+
executionContext_1.default.setAuthorizedUserLogin(attributes.authorizedUserLogin.Value);
|
|
161
|
+
}
|
|
162
|
+
const startTime = process.hrtime();
|
|
163
|
+
const logger = __classPrivateFieldGet(this, _SnsSqs_logger, "f").withParams({
|
|
164
|
+
correlationId: executionContext_1.default.getCorrelationId(),
|
|
165
|
+
login: executionContext_1.default.getAuthorizedUserLogin(),
|
|
166
|
+
serviceBroker: { topicName, queueName },
|
|
167
|
+
});
|
|
168
|
+
try {
|
|
169
|
+
logger.generic.info("Consuming started");
|
|
170
|
+
const originalMessage = JSON.parse(messageBody.Message);
|
|
171
|
+
yield onMessage(originalMessage, { logger });
|
|
172
|
+
const diff = process.hrtime(startTime);
|
|
173
|
+
const timeInMilliseconds = diff[0] * 1000 + diff[1] / 1000000;
|
|
174
|
+
logger.generic.info("Consuming finished", { taskDuration: timeInMilliseconds });
|
|
175
|
+
yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").deleteMessage({
|
|
176
|
+
QueueUrl: queueUrl,
|
|
177
|
+
ReceiptHandle: message.ReceiptHandle
|
|
178
|
+
}).promise();
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
logger.generic.error(`Consuming error\nerror: |${JSON.stringify(e)}|\nobject: |${message.Body}|`, e);
|
|
182
|
+
}
|
|
176
183
|
}
|
|
177
184
|
}
|
|
178
185
|
}
|
|
179
|
-
}
|
|
186
|
+
});
|
|
187
|
+
__classPrivateFieldGet(this, _SnsSqs_promises, "f").push(consumeLoop().catch(e => {
|
|
188
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.error(`Consuming error\nerror: |${JSON.stringify(e)}|`, e);
|
|
189
|
+
}));
|
|
180
190
|
});
|
|
181
191
|
}
|
|
182
192
|
createTopic(topicName) {
|
|
@@ -282,6 +292,6 @@ class SnsSqs {
|
|
|
282
292
|
});
|
|
283
293
|
}
|
|
284
294
|
}
|
|
285
|
-
_SnsSqs_logger = new WeakMap(), _SnsSqs_snsClient = new WeakMap(), _SnsSqs_sqsClient = new WeakMap(), _SnsSqs_createdTopics = new WeakMap(), _SnsSqs_createdQueues = new WeakMap();
|
|
295
|
+
_SnsSqs_logger = new WeakMap(), _SnsSqs_snsClient = new WeakMap(), _SnsSqs_sqsClient = new WeakMap(), _SnsSqs_createdTopics = new WeakMap(), _SnsSqs_createdQueues = new WeakMap(), _SnsSqs_isStopRequested = new WeakMap(), _SnsSqs_promises = new WeakMap();
|
|
286
296
|
exports.default = SnsSqs;
|
|
287
297
|
//# sourceMappingURL=SnsSqs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnsSqs.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/SnsSqs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0B;AAE1B,0DAAkC;AAElC,iFAAyD;AACzD,uFAA+D;AAE/D,iBAAG,CAAC,MAAM,CAAC,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAM,CAAC,GAAG,CAAC,SAAS;IACjC,eAAe,EAAE,gBAAM,CAAC,GAAG,CAAC,SAAS;IACrC,MAAM,EAAE,gBAAM,CAAC,GAAG,CAAC,MAAM;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM;
|
|
1
|
+
{"version":3,"file":"SnsSqs.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/SnsSqs.ts"],"names":[],"mappings":"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"}
|