-
Notifications
You must be signed in to change notification settings - Fork 1
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
[bug] 한국투자증권 액세스 토큰 만료시 발급 문제 #131
Labels
bug
Something isn't working
Comments
yonghwankim-dev
added a commit
that referenced
this issue
Jan 12, 2024
yonghwankim-dev
added a commit
that referenced
this issue
Jan 12, 2024
yonghwankim-dev
added a commit
that referenced
this issue
Jan 12, 2024
yonghwankim-dev
added a commit
that referenced
this issue
Jan 15, 2024
* #123 docs: 테스트 프로파일에 히카리 로깅 레벨 설정 * #129 refactor: 별도 메소드 분리 * #129 test: 히카리 연결 풀 테스트 코드 추가 * #123 fix: 스케줄링 메소드 오타 수정 * #123 fix: throwable 로깅 * #131 test: HasPortfolioAuthorizationAspect 테스트 코드 추가 * #123 fix: OSIV(open session in view) 설정 * #123 test: 불필요한 테스트 코드 제거 * #123 refactor: 포트폴리오 조회시 fetch join으로 변경 - N+1 문제를 해결하기 위해서 fetch join 사용 * #123 test: findAllByPortfolioId 테스트 코드 추가 * #123 fix: OSIV 비활성화에 따른 fetch join 적용 * #123 fix: OSIV 비활성화에 따른 테스트 코드 수정
yonghwankim-dev
added a commit
that referenced
this issue
Jan 15, 2024
* #131 fix: 액세스 토큰 발급 오류 수정 * #131 test: 액세스 토큰 발급 테스트 코드 추가 * #131 test: 오타 수정 * [fix] Hikari Connection Pool 고갈 문제 해결 (#135) * #123 docs: 테스트 프로파일에 히카리 로깅 레벨 설정 * #129 refactor: 별도 메소드 분리 * #129 test: 히카리 연결 풀 테스트 코드 추가 * #123 fix: 스케줄링 메소드 오타 수정 * #123 fix: throwable 로깅 * #131 test: HasPortfolioAuthorizationAspect 테스트 코드 추가 * #123 fix: OSIV(open session in view) 설정 * #123 test: 불필요한 테스트 코드 제거 * #123 refactor: 포트폴리오 조회시 fetch join으로 변경 - N+1 문제를 해결하기 위해서 fetch join 사용 * #123 test: findAllByPortfolioId 테스트 코드 추가 * #123 fix: OSIV 비활성화에 따른 fetch join 적용 * #123 fix: OSIV 비활성화에 따른 테스트 코드 수정
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
상황
이전 이슈를 통하여 서버 시작시 한국투자증권 서버로부터 액세스 토큰을 발급받지 못하는 경우에 다시 저장하지 못하는 문제가 있었습니다. 이를 통해 retryWhen operator를 이용하여 재시도할 수 있도록 개선하였습니다.
하지만 배포 서버의 모니터링 결과 액세스 토큰이 만료되었을때 저장되지 않는 문제가 있습니다. 또한 다음 테스트를 통하여 redis 저장소에 액세스 토큰을 지운 상황에서 새로운 토큰을 발급받을 때 저장되지 않는 문제가 있다는 것을 알게 되었습니다.
테스트 실행 결과는 다음과 같습니다.
원인
문제가 발생한 원인은 retryWhen operator를 통하여 재발급하는 것은 좋았으나 subscribe operator 실행이 마치기도 전에 메소드가 종료되어 redis에 accessToken을 저장하지 못하였습니다.
본인은 subscribe가 실행되기 전에 block되어 서버로부터 응답을 받아서 실행될것이라고 기대했으나 실제로는 어떤 operator에서도 blocking이 되지 않아서 액세스 토큰을 저장하지 못하고 종료되었습니다.
해결방법
handleNewAccessToken 메서드는 subscribe가 종료되고 나서.종료되도록 대기를 설정합니다.
FineAnts-was/src/main/java/codesquad/fineants/spring/api/kis/aop/AccessTokenAspect.java
Lines 46 to 63 in 1722074
The text was updated successfully, but these errors were encountered: