반응형
안녕하세요.
이 글은 rest 호출 후 timeout 설정 중 기록하고 싶은 내용 중 일부입니다.
총 4개의 REST API 호출
세 번째 호출에서 시간이 길어질 수 있었고,
각 호출은 5분이라는 인가 시간을 할당받아 작업합니다.
이 중 세 번째 API 호출 시 응답 시간이 지연될 수 있는 여지가 있었습니다.
(동영상 업로드 작업)
Timeout 예외처리와 실패 시 임시로 저장한 동영상을 반드시 지워야하는 상황이었기 때문에
업로드가 실패했을 때, 인가 시간이 초과됐을 때 새로운 인가를 생성했습니다.
필요한 것은 호출 후 5분이 지났는지 여부
final LocalDateTime MAXIMUM_TIME = LocalDateTime.now().plugMinutes(4);
// MAXIMUM_TEIM_______ : 2020-02-10T15:47:32.702
// LocalDateTime.now() : 2020-02-10T15:43:32.703
boolean isBefore = LocalDateTime.now().plusMinutes(4).isBefore(LocalDateTime.now())
// False
인가의 종료 시간이 5분이라 딱 5분에 맞춰 체크할 경우
몇 milliseconds 차이로 실패할 여지가 있기 때문에 마음 편하게 4분으로 체크하였습니다.
API 첫 호출에 MAXIMUM_TIME 을 저장하고, 필요한 구간에서 상태를 체크하여 사용하니 너무 간단했습니다.
반응형
'Java' 카테고리의 다른 글
실습으로 확인하는 tomcat server vs netty server (0) | 2022.07.12 |
---|---|
error rsocket run on mac os (1) | 2022.06.11 |
gradle docker image 생성하기: spring boot (0) | 2021.01.25 |
java isDigits, number parse exception 처리 (0) | 2020.05.11 |
Java 8 LocalDateTime convert date format: (0) | 2020.04.16 |