@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)(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yolo-croket-dev/core",
3
- "version": "1.7.19-slowquery.0",
3
+ "version": "1.7.19-slowquery.2",
4
4
  "author": "Yolo Co., Ltd.",
5
5
  "description": "Yolo commonization module",
6
6
  "main": "index.js",