Skip to content

DOCS. 베스트 상품 갱신하는 방법

YoonMinSang edited this page Aug 30, 2021 · 10 revisions

베스트 상품 갱신하는 방법

  • 판매한 물품의 수를 내림차순으로 정렬하고 상위 30개의 아이템을 is_best 1로 설정하고 나머지 아이템을 is_best 0으로 설정한다.

  • 크론탭을 이용해 5분마다 갱신한다.

  • 아이템이 엄청나게 많다면 유저가 없는 시간에 업데이트를 할 수도 있지만 규모가 많이 큰 회사가 아닌 이상 그럴 필요는 없다.

  • mysql의 데이터 처리 능력은 그정도로 나쁘지 않다.

  • 서브쿼리문을 한번 더 써주는 이유는 mysql이 지원하지 않기 때문이다.(오라클은 가능하다.)

  • 에러 발생시에 크론탭에 로그를 적어줌.

  • deploy.sh에 명령어 작성

vi deploy.sh
sudo mysql;
USE testdb;
UPDATE Items SET isBest = CASE 
  WHEN id IN (SELECT id FROM (SELECT id FROM Items ORDER BY saleCount desc limit 30)a) THEN 1 
  ELSE 0
  END;
exit;

crontab에 5문마다 실행하는 명령어 작성

crontab-e
5 * * * * /home/ubuntu/deploy.sh >> /home/ubuntu/deploy.sh.log 2>&1
chmod +x deploy.sh
Clone this wiki locally