개요
PaymentBookingCompletionRetryService의 재시도 배치가 실패한 항목에 의해 고정될 수 있는 문제를 처리합니다.
배경
retryPendingBookingCompletions()는 SUCCESS 결제와 PAYMENT_PENDING 예약을 최대 50건만 조회합니다. 첫 50건의 retryOne 처리가 계속 실패하면, 다음 실행에서도 동일한 항목이 우선 조회될 수 있습니다. 이 경우 51번째 이후의 적격 결제가 처리되지 않습니다.
변경 사항
- 실패한 재시도 항목이 이후 적격 항목의 처리를 계속 막지 않게 합니다.
- 재시도 횟수와 다음 재시도 시각을 영속화하거나, 키셋 커서 기반 순회를 적용합니다.
- 배치 크기 50을 유지합니다.
- 첫 번째 배치의 항목이 실패해도 51번째 항목을 처리할 수 있음을 검증하는 회귀 테스트를 추가합니다.
영향 범위
src/main/java/com/kosa/fillinv/payment/application/PaymentBookingCompletionRetryService.java
src/main/java/com/kosa/fillinv/payment/repository/PaymentRepository.java
- Payment 재시도 관련 엔티티 및 테스트
완료 조건
- 반복 실패 항목이 모든 실행에서 첫 50건을 독점하지 않습니다.
- 이후의 적격
SUCCESS Payment와 PAYMENT_PENDING Booking을 처리할 수 있습니다.
- 첫 50건 실패 시 51번째 항목이 처리되는 회귀 테스트가 통과합니다.
관련 링크
개요
PaymentBookingCompletionRetryService의 재시도 배치가 실패한 항목에 의해 고정될 수 있는 문제를 처리합니다.배경
retryPendingBookingCompletions()는SUCCESS결제와PAYMENT_PENDING예약을 최대 50건만 조회합니다. 첫 50건의retryOne처리가 계속 실패하면, 다음 실행에서도 동일한 항목이 우선 조회될 수 있습니다. 이 경우 51번째 이후의 적격 결제가 처리되지 않습니다.변경 사항
영향 범위
src/main/java/com/kosa/fillinv/payment/application/PaymentBookingCompletionRetryService.javasrc/main/java/com/kosa/fillinv/payment/repository/PaymentRepository.java완료 조건
SUCCESSPayment와PAYMENT_PENDINGBooking을 처리할 수 있습니다.관련 링크