불안정한 타겟 요청 시 서버 요청 방법
2023. 6. 14. 17:11ㆍ개발지식
상황
크롤링 작업 시 종종 서버 상태가 응답 속도가 느리거나, 요청에 대한 대답을 못하고 500에러를 내보내는 타켓 서버가 존재한다.
그래서 크롤링 진행 시 요청 시간을 길게 잡고 가야하는데 무턱대고 길게 잡으면 크롤링 작업 시간이 배로 늘어나게 될수있다.
그래서 Exponential backoff 전략을 사용한다.
Exponential backoff 자세한 설명이다.
구현 방법
서버 요청을 진행 하고 이후 실패 시
요청 성공 할 때 까지 요청 시간의 2배수로 올려 요청시간을 늘린다.
요청 성공 시
요청에 성공하면 초기에 전송했던 요청 시간을 돌려둔다.
ex) 1000ms 에 한번 요청을 진행 한다.
ex) 1000ms => 2000ms => 4000ms => 6000ms => 8000ms
이유
타겟 서버가 불안정 하여 계속되는 요청으로 타켓서버를 무력화 할 수 있어 공격으로 판단이 되어 막히는 위험성이 있고
안정적으로 데이터를 가져오기 위함이다.
728x90
반응형