반응형
오류
axios를 한두번 요청하는 경우에는 문제없지만 몇천번의 요청을 하는 경우 한두번꼴로 request 이후 어떠한 결과값도 반환하지 않고 그대로 홀딩되버리는 경우가 발생한다.
당연히 timeout도 옵션값에 넣었는데 timeout 작동도 잘 하지만 그냥 그게 문제가 아니다. ㅇㅇ
정말 귀신이 곡할 노릇이라서 axios 라이브러리가 문제라고 생각하기도 쉽지 않았다.
여기까지 찾아 들어온 당신 꽤 하는거다.
보상으로 어렵게 얻어낸 해결 방법을 공유하도록 하겠다.
원인
원인은 잘 모르겠다. 아래에도 비슷한 상황이 있는데 흔한 케이스도 아니고 어쩌면 라이브러리 버전 문제일까 싶기도 한데 딱히 찾아봐도 뭐가 안나왔다.
https://github.com/axios/axios/issues/459
해결
해결방법은 axios의 timeout을 사용하지말고 자체적으로 타이머를 걸어서 cancel-token이라는 기능과 함께 해당 요청이 시간이 지나면 내가 직접 취소처리를 해버리는 것 이다.
nodejs axios cancel token 이라고 검색해서 찾아보면 사용 방법이 잘 나온다.
어떤 느낌인지 보고 싶으면 아래 내가 적용하기 전과 후 코드를 봐보자.
좀 더러워지긴 했는데 이렇게 하니까 잘 된다.
반응형
'JS > Nodejs' 카테고리의 다른 글
nodejs sequlize findall 빈값 들어올때 (0) | 2021.12.17 |
---|---|
카카오톡 알림톡 API - nodejs (0) | 2021.09.09 |
nodejs fileSystem rmdir TypeError [ERR_INVALID_CALLBACK]: Callback must be a function (0) | 2021.06.14 |
nodejs axios writestream 파일 다운로드 (0) | 2021.05.10 |
nodejs axios readstream 파일 업로드 (0) | 2021.05.10 |