Java

Java LocalDateTime으로 시간 체크

PSAwesome 2020. 2. 10. 15:48
반응형

안녕하세요.

이 글은 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 을 저장하고, 필요한 구간에서 상태를 체크하여 사용하니 너무 간단했습니다.

반응형