정해진 기준날짜에 함수를 실행하고 싶습니다. 이런 경우 setInterval써서 구현 괜찮을까요?
관련링크
본문
제가 만든 웹 페이지에서 예를 들어 기준 날짜가 있으면 기준 날짜 10일 전에 함수를 동작 시키고 싶습니다.
기준 날짜가 2023-09-11 이면 2023-09-01에 함수를 동작 시키고 싶은데
실시간으로 저 날짜를 계속 해서 계산을 해야할텐데
그럴 경우 setInterval 사용해서 구현해도 괜찮을까요??
제가 생각한건 날짜를 구하고 계산하는 함수를 만들어서 셋인터벌로 1초마다 함수 실행
그리고 조건에 맞으면 함수동작 이런식으로 구현을 할까 했는데
1초마다 함수를 실행하면 과부하가 없을까요???
날짜를 구하고 계산하는 함수는 대충
현재 날짜를 가져오고 기준 날짜를 디비에서 가져와 기준 날짜 -10을 해 비교할 날짜를 만들어주고 현재 날짜와 비교
그리고 현재 날짜 비교날짜(-10일) 같으면 동작 실행 이런식으로 구현하려고 하는데 1초마다 디비에서 값을 가져오면 부하가 날 거 같기도
하고 이게 좋은 방법인지 모르겠네요... 다른 더 좋은 방법이 있을까요?
답변 3
서버단에서 컨트롤이 가능하면 굳이 이런 고민 하실필요없이 크론으로 돌리면됩니다.
웹호스팅에서 구현하려면 완벽한 실시간은 어렵습니다. 누군가 접속일 해야하기 때문이죠.
그게 사람이든 봇이던간에요.
바꿔 말하면 아무도 접속하지 않은 웹은 계속 갱신할 필요가 없습니다.
그래서 누군가 접근하면 갱신하도록 짜되, update 시간을 기록해두고 동시에 많은 사람이 접속을 해도
한번만 처리하게 하면됩니다.
웹소켓이 좋을듯 합니다 또는 Node.js
서버에서 작업을 실행하면 클라이언트 측에서 지속적으로 실행하는 것보다 효율적일 수 있습니다.
그러나 데이터를 가져오고 날짜 계산을 1초마다 수행하면 데이터베이스와 서버에 부하를 주며 효율적이 않을수 있다고 봅니다.