728x90
반응형
스케줄러는 특정일자/요일/시간/분/초에 지정된 일을 수행하라고 미리 스케줄을 요청하는 것입니다.
예를 들어, 제가 광고업체인데 매 시간마다 광고주에게 광고가 잘 되고 있는지 확인하는 메일을 보내고 싶다면 스케줄러를 이용하면 좋겠죠?
매시간마다 광고주가 맡긴 제품을 검색하여 캡처해서 메일로 보내주는 스케줄러를 만들면 자고 있을 때도 계속~~~ 찍어서 보내주겟죠.
이제 이러한 기능을 담기 위해서 node.js의 모듈을 하나 install 할 것입니다.
Node Schedule이라는 module을 다운로드 받고 스케줄러를 간편하게(?) 만들 예정입니다.
(설치는 https://www.npmjs.com/package/node-schedule 에서 하시거나 아래 명령어 치시면 됩니다.)
$ npm i node-schedule
제가 오늘 선택한 유투버님이 실무에서 자주 사용하는 코드가 있다고 해서 그것을 이용해서 한번 만들어 보도록 하죠. 저 모듈을 만드신 분들의 github에 가보시면 많은 방법이 있습니다!
const schedule = require('node-schedule');
const rule = new schedule.RecurrenceRule();
rule.dayOfWeek = [0, new schedule.Range(4, 6)];
rule.hour = 17;
rule.minute = 0;
const job = schedule.scheduleJob(rule, function(){
console.log('Today is recognized by Rebecca Black!');
});
이런식으로 사용한다고 하네요.
rule을 이용하여 함수가 계속 실행이 되게 만들어주면 됩니다.
직접 node 를 실행하면서 확인해보면 재밌습니다.
시작 시간과 끝내는 시간을 지정할 수도 있습니다.
const startTime = new Date(Date.now() + 5000);
const endTime = new Date(startTime.getTime() + 5000);
const job = schedule.scheduleJob({ start: startTime, end: endTime, rule: '*/1 * * * * *' }, function(){
console.log('Time for tea!');
});
이렇게 스케줄러에 관하여 공부를 해보았는데요.
아직 사용해보지는 않았지만 이론상 이해는 되는군요 ㅎㅎ
https://www.youtube.com/watch?v=zajq7NJflPY&t=636s
반응형
'코딩 개발' 카테고리의 다른 글
기업협업 Project (0) | 2023.01.05 |
---|---|
Node.js - Crawling(크롤링) (0) | 2022.12.14 |
2차 Project - BUGBUG (2) | 2022.12.09 |
Nginx (0) | 2022.12.08 |
Proxies & Load Balancing (0) | 2022.12.07 |