Skip to content

상세 공고 api 호출 중 발생한 이슈 및 해결 방안

ha6oon edited this page Jun 6, 2023 · 2 revisions

물리적인 시간 한계 → 분산작업처리로 속도 개선

  • 속도 빨라짐
  • 연속적인 API 요청 시 발생하는 SERVICE ERROR는 동일하게 발생하여, 쓰레드의 개수를 늘린다고해서 성능의 향상을 항상 보장해주진 않음. (모든 쓰레드가 다같이 timesleep()에 걸리는 현상)

연속적인 API 요청 시 발생하는 SERVICE ERROR 대처 방안들

  1. 키를 최대한 여러개 구비하여 API 요청하는 스크립트에 이용하기 → 병렬처리 극대화
  2. 쉬는 타이밍이 주기적인 경우에도 SERVICE ERROR 발생 할 수 있음
    • 쉬는 타이밍 관련 파이썬 라이브러리를 활용하자
      • ex. Exponential backoff retrial (지수적으로 쉬는 시간 늘리기 : 2초→ 4초→..)

(번외)

  1. 동기 vs 비동기 쓰레드
    • 동기 방식 : api 요청하고 (응답올때까지) 멈춰있음 → 느림
    • 비동기 방식 : 어씽크 api 컬 등을 이용하여 응답 오던말던 다음 응답 바로 던짐 → 빠름
    • 동기 쓰레드 여러개보다 그냥 하나의 비동기 쓰레드를 이용해서 모든 api요청 처리하기
    • 하지만 동기이던 비동기 방식이던 api limit 에서 자유롭진 못함. 위의 SERVICE ERROR는 동일하게 일어나므로 1,2번의 방식으로 처리 필요함