boostcampwm-2022 / web18-PRV

논문 인용관계를 밤하늘의 별 처럼 표시해보자 🌟-🌟
https://paperef.com
143 stars 3 forks source link

7-1 [BE] [메인 - 검색창 - 자동완성] Elasticsearch db 캐싱 파이프라인 생성 #62

Closed JunYupK closed 1 year ago

JunYupK commented 1 year ago

개요

자동완성기능 api 호출시에 엘라스틱서치에 해당 키워드의 데이터가 없을시 crossref api를 호출하는 과정에서 5개만이 아닌 최대 1만개의 논문의 제목과 저자를 엘라스틱서치에 캐싱하는 파이프라인을 생성하였습니다.

작업사항

  1. 전역변수 CROSSREF_CACHE_QUEUE를 서버에서는 주기적으로 확인합니다.
  2. crossref api 호출시에 1000개 단위로 10개의 crossref api url을 생성하여 CROSSREF_CACHE_QUEUE에 넣습니다.
  3. CROSSREF_CACHE_QUEUE에 데이터가 있다면, 하나의 데이터를 꺼내어 crossref api에 데이터를 요청하고 요청한 데이터를 엘라스틱 서치에 저장합니다. 화면 캡처 2022-11-23 213803

다음과 같은 url이 큐에 담기고, 이를 주기적으로 확인하며 순차적으로 작업을 수행합니다. => 이는 crossref api 호출 x-rate를 유동적으로 조절하기 위해 필요한 작업이었습니다. (status 429)