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

네트워크 통신 retry 기능 추가 #14

Merged
merged 9 commits into from
Feb 27, 2024
Merged

Conversation

Peter1119
Copy link
Collaborator

No description provided.

@Peter1119 Peter1119 self-assigned this Jan 22, 2024
else {
throw NetworkError.invalidStatusCode
var attempts = 0
let retryCount = 3
Copy link
Collaborator

Choose a reason for hiding this comment

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

retrtyCount와 같은 값은 파라미터로 입력받을수 있게 하면 좋을거 같습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

적용한 커밋입니다! a699512

Comment on lines +37 to +39
case .timeOut, .notReachable:
attempts += 1
try await Task.sleep(nanoseconds: 2_000_000_000 * UInt64(attempts))
Copy link
Collaborator

Choose a reason for hiding this comment

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

이 두가지의 케이스일때만 리트라이를 해도 충분할까요?

Copy link
Collaborator

Choose a reason for hiding this comment

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

리트라이에 딜레이를 준 이유가 있을까요? 그리고 위 시간만큼 딜레이를 준 이유도 있을까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

리트라이에 딜레이를 준 이유가 있을까요? 그리고 위 시간만큼 딜레이를 준 이유도 있을까요?

네트워크 연결 문제나 타임아웃 문제가 일시적일 경우 잠시 기다린 다음에 다시 시도하면 성공 가능성이 늘어갈 것으로 예상해서 딜레이를 주었습니다! 그리고 리트라이를 연속적으로 할 경우 서버에 부하가 걸릴 것 같아서 준 이유도 하나 입니다!

시간에 대해서는 막연한 수치입니다.. 근거를 찾는 것은 못했습니다

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

이 두가지의 케이스일때만 리트라이를 해도 충분할까요?

어떤 케이스가 있을지 고민은 해보았는데 추가적으로 생각나는 것이 없었습니다 ㅠ 하지만 생각하다 보니 오히려 요청에 대한 종류에 따라 retry 여부를 결정해야하지 않을까라는 생각이 들었습니다! 민감한 요청에 대해서는 리트라이가 없는게 더 좋을 수도 있겠다는 생각이 들어서요!

Copy link

sonarcloud bot commented Feb 12, 2024

@f-lab-jercy
Copy link
Collaborator

오 넵 고생하셨습니다. 머지 하셔도 좋아요!

@Peter1119 Peter1119 merged commit 0ccc22c into main Feb 27, 2024
2 checks passed
@Peter1119 Peter1119 deleted the feature/retry_request branch February 27, 2024 11:42
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