Skip to content
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

Merged
merged 7 commits into from
Jan 10, 2025

Conversation

Stark-Industries0417
Copy link
Collaborator

주요 변경 사항

  1. 재시도 로직 구현

    • JvmNetworkClient 내부 makePostRequestAsync 메서드에 재시도 기능 추가.
    • 실패 시 설정된 최대 재시도 횟수(maxRetries)만큼 요청을 반복.
    • 재시도 간의 딜레이는 retryDelayMillis 값과 지수 백오프(backoffFactor)를 통해 증가하도록 설정.
  2. 테스트 코드 작성

    • MainIntegrationTest.kt에 재시도 로직 검증 테스트 추가.
      • 요청 실패 시 정해진 횟수 만큼 시도하는지 검증

Copy link

sonarqubecloud bot commented Jan 8, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
B Reliability Rating on New Code (required ≥ A)

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) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

재시도 로직은 좋은 것 같은데요. 음 ... 만약 재시도를 해야하는 상황이라면, 요청을 받는 서버쪽에 문제가 생겼을 가능성이 높은데, 그 타이밍에 계속 재시도를 하는 것이 좋은가? 에 대해서 생각해보면, 좋을 것 같네요. (이 문제는 답은 없습니다만...) 그리고 재시도 하는 동안 (정확히는 sleep하는동안) 요청이 계속 들어올텐데, 그럼 그런 요청들도 문제가 생겨서 재시도 로직을 타게되면, 결과적으로 많은 로그들이 쌓이게 되지 않을까요?

Copy link
Collaborator

@f-lab-lyan f-lab-lyan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좀 더 시스템에 영향을 안주면서 재시도를 하려면 어떻게 해야할지 멘토링 시간에 얘기해보죠. :-)

@Stark-Industries0417 Stark-Industries0417 merged commit 3d216ae into main Jan 10, 2025
1 of 2 checks passed
@Stark-Industries0417 Stark-Industries0417 deleted the feat/jvm-sdk-async branch January 10, 2025 04:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants