-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
재시도 로직 구현 및 테스트 추가 #7
Conversation
Quality Gate failedFailed conditions See analysis details on SonarQube Cloud Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE |
override fun onFailure(call: okhttp3.Call, e: IOException) { | ||
var tmpAttempt = attempt | ||
tmpAttempt++ | ||
if (tmpAttempt <= maxAttempts && config.isRetryEnabled) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
재시도 로직은 좋은 것 같은데요. 음 ... 만약 재시도를 해야하는 상황이라면, 요청을 받는 서버쪽에 문제가 생겼을 가능성이 높은데, 그 타이밍에 계속 재시도를 하는 것이 좋은가? 에 대해서 생각해보면, 좋을 것 같네요. (이 문제는 답은 없습니다만...) 그리고 재시도 하는 동안 (정확히는 sleep하는동안) 요청이 계속 들어올텐데, 그럼 그런 요청들도 문제가 생겨서 재시도 로직을 타게되면, 결과적으로 많은 로그들이 쌓이게 되지 않을까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
좀 더 시스템에 영향을 안주면서 재시도를 하려면 어떻게 해야할지 멘토링 시간에 얘기해보죠. :-)
주요 변경 사항
재시도 로직 구현
JvmNetworkClient
내부makePostRequestAsync
메서드에 재시도 기능 추가.maxRetries
)만큼 요청을 반복.retryDelayMillis
값과 지수 백오프(backoffFactor
)를 통해 증가하도록 설정.테스트 코드 작성
MainIntegrationTest.kt
에 재시도 로직 검증 테스트 추가.