적정 timeout 시간은 어떻게 될까?

hyuckhoon.ko·2022년 9월 13일
0

최적값을 찾는다는 것

모회사 CTO 분께 서버 스케일 아웃 조건에 대해서 물어본 적이 있다.
솔루션을 빨리 찾고 싶은 마음에서 그랬나보다.
어쨌든 돌아온 답변은 "회사 상황에 맞게 찾아가야 한다" 였다.

우문현답이었다.


그 알림톡은 왜 발송이 안됐을까

timeout이 명시되어 있지 않은 상태에서 개선되고 있었다.
참고로 timeout 설정을 하지 않거나 timeout=None 설정 시,
리모트 서버에서 응답이 올 때까지 무한정 대기를 해버린다.

# 1차 개선
requests.post(url, headers=headers, data=data, timeout=2)

그러다 간헐적으로 유저마다 메시지가 발송되지 않는 에러가 발생하고 있었다.
특히, 비즈엠이란 서비스에 우리쪽에서 요청한 이력이 없다고 한다.

분명 발송하는 프로세스가 교착상태에 빠졌던가, 뭔가 다른 이유가 있을 거 같은데
확실한 건 우리 쪽 문제라는 점이다.

일단 timeout 시간을 늘렸다.

# 2차 개선
requests.post(url, headers=headers, data=data, timeout=2)

어떻게 해결해 나갈까?

유저 및 다른 부서 입장에서는 이 문제가 실패로 보일 수도 있다.
비즈니스 로직은 성공했지만, 알림톡이 발송되지 않았다.
하지만 독립적으로 실패했다는 점에서 개발 관점에서는 선방했다.

알림톡 발송 실패로 비즈니스 로직도 실패처리 한다? 최악이 아닐 수 없다.

아무튼 개선은 해야 한다.

자료를 찾아보자..

0개의 댓글