요즘 유료로 날씨 관련 해외 api를 결제해서 이것저것 데이터를 받아오고 있는데
XE라이믹스에 캐시라는 좋은기능이 있어서 60분으로 설정해서 잘쓰고는 있습니다.
하지만 60분에 한번씩 그 로딩을 겪어야하는 당첨자가 꼭 생길테고
지금은 방문자가 적다보니 제가 그 60분 api 로딩에 무조건 당첨되고있어서요.
이거 제가 사용자라고 생각해도 속도 느리네 이사이트 하고 도망칠것 같다는 생각이 들어서
이걸 db에다 저장해두고 휘발성으로 계속 클론탭 활용해서 30분마다 갱신 시켜주고
db에서 사용자들은 데이터를 받아오게끔 해보려고 합니다.
심지어 api를 2개 3개 받아오면 거의 사이트가 멈췄나? 싶을정도더라구요.
다른분들은 api 사용할때 어떤방식을 이용하는지 궁금합니다.
db에 저장을 해보려고하니 멍청하게도
덮어씌우지 않고 1-10까지 불러오고
또 실행시키면 1-10불러온걸
11~20으로 다음 행에 저장시켜버리고 있네요.
근데 또 생각해보면
db에 자료를 덮어씌우는거면 그 찰나의 덮어씌우는 순간에는 방문자가 페이지 에러를 겪는건 아닌가 생각도 들구요.
의견 구해봅니다.
감사합니다.
사이트에 운영에 전혀 지장이 없어야 한다라면 cron을 사용해보시는 것도 좋습니다.
정확히 원하는 시간에 api 응답을 받아올 수도 있고, 백그라운드에서 작동하기 때문에 회원에게 지장이 가는 작업도 무리없이 진행할 수 있다는 장점이 있습니다.
단 하나 단점은 세팅하기가 조금 귀찮다는 점인데, 초기 세팅만 감수하신다면 사이트 운영에 지장 없이 원하는 작업을 원하는 시간마다 작동시킬 수 있습니다.
저는 미션모듈의 일일퀘스트 초기화나, Hotopay의 정기결제 기능을 구현하는데 Cron을 사용했고요
Hotopay에서 cron 세팅하는 문서 한번 남겨드릴테니 참고하셔서 만들어보시는 것도 좋아보입니다
https://hotopaydocs.potatosoft.kr/cron