@yolo-croket-dev/core 1.7.28 → 1.7.29

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.
@@ -306,27 +306,13 @@ let RPCInterceptor = class RPCInterceptor {
306
306
  abortController.abort();
307
307
  return (0, rxjs_1.throwError)(() => new exceptions_1.InternalServerError('TIMEOUT_ERROR', this.DEFAULT_TIMEOUT_MESSAGE));
308
308
  },
309
- }), (0, operators_1.tap)({
310
- next: async (val) => {
311
- val.isError = false;
312
- /** 만약 응답데이터중 isRequeue가 true라면, 다시 재처리 하도록 함 */
313
- if (val.data && val.data.isRequeue) {
314
- channel.nack(message, false, true);
315
- execInterceptor.isMessageAck = true;
316
- return;
317
- }
318
- if (!noAck) {
319
- execInterceptor.isMessageAck = true;
320
- channel.ack(message);
321
- }
322
- },
323
- error: localErrorProcessor,
324
309
  }),
325
310
  // eslint-disable-next-line consistent-return
326
311
  (0, operators_1.catchError)(async (err) => {
327
312
  const isNackMessage = !execInterceptor.isMessageAck;
328
313
  // timeout 에러 처리
329
- const isTimeoutError = err instanceof Error && (err.name === 'TimeoutError' || err.message === this.DEFAULT_TIMEOUT_MESSAGE);
314
+ const isTimeoutError = err instanceof Error
315
+ && (err.name === 'TimeoutError' || (err.message === this.DEFAULT_TIMEOUT_MESSAGE) || err.message === 'TIMEOUT_ERROR');
330
316
  if (isTimeoutError) {
331
317
  msaLogger.error(`[타임 아웃] 메시지 감지, ${isNackMessage ? '재전달' : '재전달하지 않음'}처리`, { traceId: execInterceptor.traceId }, {
332
318
  error: {
@@ -346,16 +332,32 @@ let RPCInterceptor = class RPCInterceptor {
346
332
  stack: err.stack,
347
333
  name: err.name,
348
334
  response: err.response,
335
+ isNackMessage,
349
336
  },
350
337
  messagePattern: method,
351
338
  });
352
339
  }
353
- if (!execInterceptor.isMessageAck) {
340
+ if (isNackMessage) {
354
341
  channel.nack(message, false, true);
355
342
  execInterceptor.isMessageAck = true;
356
343
  message.properties.replyTo = undefined; /** replyTo가 존재하면 sendToQueue가 호출되므로, 삭제해주기 */
357
344
  }
358
345
  return new rxjs_1.Observable();
346
+ }), (0, operators_1.tap)({
347
+ next: async (val) => {
348
+ val.isError = false;
349
+ /** 만약 응답데이터중 isRequeue가 true라면, 다시 재처리 하도록 함 */
350
+ if (val.data && val.data.isRequeue) {
351
+ channel.nack(message, false, true);
352
+ execInterceptor.isMessageAck = true;
353
+ return;
354
+ }
355
+ if (!noAck) {
356
+ execInterceptor.isMessageAck = true;
357
+ channel.ack(message);
358
+ }
359
+ },
360
+ error: localErrorProcessor,
359
361
  }), (0, operators_1.finalize)(() => {
360
362
  this.gracefulShutdownService.popActiveInterceptors(execInterceptor);
361
363
  abortController.abort();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yolo-croket-dev/core",
3
- "version": "1.7.28",
3
+ "version": "1.7.29",
4
4
  "author": "Yolo Co., Ltd.",
5
5
  "description": "Yolo commonization module",
6
6
  "main": "index.js",