-
Notifications
You must be signed in to change notification settings - Fork 2
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
Feat/#58 #59
Feat/#58 #59
Conversation
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.
재시도 관련 피드백 확인 부탁드립니다.
수고하셨습니다.
@Retryable(retryFor = {ObjectOptimisticLockingFailureException.class},backoff = @Backoff(value = 300L),maxAttempts = 30, recover = "temperatureRecover") | ||
@Transactional | ||
public TemperatureResponse decreaseTemperature(final Long groupId, final Long requestMemberId, final Long targetMemberId) { | ||
final Participant requestParticipant = getParticipant(groupId, requestMemberId); | ||
final Participant targetParticipant = getParticipant(groupId, targetMemberId); | ||
return targetParticipant.downTemperature(requestParticipant); | ||
final Integer temperature = targetParticipant.decreaseTemperature(requestParticipant); | ||
return new TemperatureResponse(temperature); | ||
} |
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.
재시도 횟수가 많기도 하지만, 가장 중요한 점은 재시도 간격이 일정하여
- 재시도 계속 발생하는 경우가 생길 수 있습니다.
- 어떤 시점에 재시도가 매우 많아져 부하가 엄청 많이 발생할 수 있을 것 같습니다.
1번의 경우 random 옵션을 활성화하여 비슷한 간격이어도 서로 다른 시각에 재시도할 수 있도록 설정할 수 있고,
2번의 경우 @backoff 의 multiplier 옵션을 활용하여 지수 백오프를 사용하여 해소할 수 있을 것 같습니다.
이렇게 설정하고 다시 테스트해보시면, 재시도 횟수를 줄여도 해소될 것으로 예상됩니다.
📝 테스트 커버리지 리포트입니다
|
📝 테스트 커버리지 리포트입니다
|
#️⃣연관된 이슈
📝작업 내용
💬리뷰 요구사항