송금 요청이 생성된 후 일정 시간(3일) 이내에 수락 또는 거절되지 않으면, 해당 요청을 EXPIRED 상태로 전환하는 만료 처리 기능을 도입하고자 합니다.
요청 만료 처리 기능은 단계적으로 도입하고자 하며, 현재 고려 중인 방식은 다음과 같습니다.
-
요청 시점 검증
사용자가 송금 요청을 수락하거나 거절하는 시점에, 만료 여부를 확인하고 조건을 만족할 경우 상태를 EXPIRED로 전환합니다.
-
스케줄러 기반 배치 처리
일정 주기로 만료 조건에 해당하는 요청들을 조회하고, 일괄적으로 EXPIRED 상태로 변경합니다.
요청 시점 검증만으로는 누락될 수 있는 요청을 보완합니다.
-
Queue 기반 자동 만료 처리
요청 생성 시 만료 예정 시점을 큐에 등록하고, 지정된 시간이 도래하면 만료 이벤트를 트리거하여 상태를 전환합니다.
먼저 구현 난이도가 가장 낮은 요청 시점 검증 방식으로 구현하고, 추후 점진적으로 기능을 확장하고자 합니다.
주요 기능
- 송금 요청 생성 이후 일정 시간(3일) 경과 시 만료 처리
- 수신자가 수락/거절 시점에 만료 여부 검증
- 만료 시
RemittanceRequestStatus.EXPIRED로 상태 변경
- 상태 이력(
remittance_request_status_history)에 만료 기록 추가
- 만료된 요청에 대한 수락/거절 시도는 예외(
ExpiredRequestException)로 처리
적용 대상
- 송금 요청 수락 API
- 송금 요청 거절 API
송금 요청이 생성된 후 일정 시간(3일) 이내에 수락 또는 거절되지 않으면, 해당 요청을
EXPIRED상태로 전환하는 만료 처리 기능을 도입하고자 합니다.요청 만료 처리 기능은 단계적으로 도입하고자 하며, 현재 고려 중인 방식은 다음과 같습니다.
요청 시점 검증
사용자가 송금 요청을 수락하거나 거절하는 시점에, 만료 여부를 확인하고 조건을 만족할 경우 상태를
EXPIRED로 전환합니다.스케줄러 기반 배치 처리
일정 주기로 만료 조건에 해당하는 요청들을 조회하고, 일괄적으로
EXPIRED상태로 변경합니다.요청 시점 검증만으로는 누락될 수 있는 요청을 보완합니다.
Queue 기반 자동 만료 처리
요청 생성 시 만료 예정 시점을 큐에 등록하고, 지정된 시간이 도래하면 만료 이벤트를 트리거하여 상태를 전환합니다.
먼저 구현 난이도가 가장 낮은 요청 시점 검증 방식으로 구현하고, 추후 점진적으로 기능을 확장하고자 합니다.
주요 기능
RemittanceRequestStatus.EXPIRED로 상태 변경remittance_request_status_history)에 만료 기록 추가ExpiredRequestException)로 처리적용 대상