@yolo-croket-dev/core 1.7.19-slowquery.0 → 1.7.19-slowquery.2
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.
|
@@ -192,6 +192,7 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
192
192
|
method,
|
|
193
193
|
traceId: ((_a = content.data.param) === null || _a === void 0 ? void 0 : _a.traceId) || '-',
|
|
194
194
|
correlationId,
|
|
195
|
+
isMessageAck: false,
|
|
195
196
|
};
|
|
196
197
|
/** consume 메시지 전부 cancel */
|
|
197
198
|
if (this.gracefulShutdownService.isApplicationExit) {
|
|
@@ -221,6 +222,7 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
221
222
|
})), { correlationId: message.properties.correlationId });
|
|
222
223
|
channel.nack(message, false, false); /** 아마도 기본 30분 타임아웃이 지나고 새로 들어오면 발생할 예정, DLQ로 이동 */
|
|
223
224
|
message.properties.replyTo = undefined; /** replyTo가 존재하면 sendToQueue가 호출되므로, 삭제해주기 */
|
|
225
|
+
execInterceptor.isMessageAck = true;
|
|
224
226
|
return new rxjs_1.Observable();
|
|
225
227
|
}
|
|
226
228
|
msaLogger.debug('isRedeliveryMessage RETRY_COUNT_ZERO_OR_NO_RETRY true, 재처리하여 전달토록 하기', { traceId: ((_d = content.data.param) === null || _d === void 0 ? void 0 : _d.traceId) || 'RETRY_COUNT_ZERO_OR_NO_RETRY' });
|
|
@@ -256,6 +258,7 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
256
258
|
if (isTimeoutError) {
|
|
257
259
|
channel.nack(message, false, true);
|
|
258
260
|
message.properties.replyTo = undefined; /** replyTo가 존재하면 sendToQueue가 호출되므로, 삭제해주기 */
|
|
261
|
+
execInterceptor.isMessageAck = true;
|
|
259
262
|
return rxjs_1.EMPTY;
|
|
260
263
|
}
|
|
261
264
|
if (!Number.isNaN(staticRetryCount)
|
|
@@ -266,6 +269,7 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
266
269
|
message.properties.headers['x-requeue-reason'] = 'RETRY';
|
|
267
270
|
channel.nack(message, false, true);
|
|
268
271
|
message.properties.replyTo = undefined; /** replyTo가 존재하면 sendToQueue가 호출되므로, 삭제해주기 */
|
|
272
|
+
execInterceptor.isMessageAck = true;
|
|
269
273
|
isAck = true;
|
|
270
274
|
}
|
|
271
275
|
else {
|
|
@@ -273,6 +277,7 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
273
277
|
channel.sendToQueue(message.properties.replyTo, Buffer.from(dlqMessage), { correlationId: message.properties.correlationId });
|
|
274
278
|
message.properties.headers['x-requeue-reason'] = 'DLQ-FORWARD';
|
|
275
279
|
channel.nack(message, false, false); /** 최대 진행 횟수가 넘어간다면 DLQ로 전달 */
|
|
280
|
+
execInterceptor.isMessageAck = true;
|
|
276
281
|
}
|
|
277
282
|
isAck = true;
|
|
278
283
|
}
|
|
@@ -295,6 +300,7 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
295
300
|
// });
|
|
296
301
|
if (!noAck && !isAck) {
|
|
297
302
|
channel.ack(message);
|
|
303
|
+
execInterceptor.isMessageAck = true;
|
|
298
304
|
}
|
|
299
305
|
return rxjs_1.EMPTY;
|
|
300
306
|
};
|
|
@@ -346,9 +352,11 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
346
352
|
/** 만약 응답데이터중 isRequeue가 true라면, 다시 재처리 하도록 함 */
|
|
347
353
|
if (val.data && val.data.isRequeue) {
|
|
348
354
|
channel.nack(message, false, true);
|
|
355
|
+
execInterceptor.isMessageAck = true;
|
|
349
356
|
return;
|
|
350
357
|
}
|
|
351
358
|
if (!noAck) {
|
|
359
|
+
execInterceptor.isMessageAck = true;
|
|
352
360
|
channel.ack(message);
|
|
353
361
|
}
|
|
354
362
|
},
|
|
@@ -357,9 +365,11 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
357
365
|
// timeout 에러 처리
|
|
358
366
|
msaLogger.error('Timeout occurred, requeuing message', { traceId: execInterceptor.traceId }, { error: err });
|
|
359
367
|
const isTimeoutError = err instanceof Error && err.name === 'TimeoutError';
|
|
360
|
-
if (isTimeoutError) {
|
|
368
|
+
if (isTimeoutError && !execInterceptor.isMessageAck) {
|
|
361
369
|
channel.nack(message, false, true);
|
|
370
|
+
execInterceptor.isMessageAck = true;
|
|
362
371
|
message.properties.replyTo = undefined; /** replyTo가 존재하면 sendToQueue가 호출되므로, 삭제해주기 */
|
|
372
|
+
msaLogger.debug('TimeoutError occurred, message requeued called', { traceId: execInterceptor.traceId });
|
|
363
373
|
return rxjs_1.EMPTY;
|
|
364
374
|
}
|
|
365
375
|
}), (0, operators_1.finalize)(() => {
|