스케줄러란
미리 정해놓은 프로그램을 지정된 스케줄에 맞게 실행하도록 하는것
먼저
npm i node-schedule
를 터미널 창에 입력하여 노드 스케줄러를 설치해 줍니다
const schedule = require('node-schedule');
노드 스케줄러를 불러와 schedule 이라는 변수에 담아줍니다
https://www.npmjs.com/package/node-schedule
npm 스케줄러 사이트로 들어가

이걸 한번 사용해 보겠습니다
const schedule = require('node-schedule');
let scheduleObj = null;
const set = (s) => { // 스케줄 셋팅
var rule = new schedule.RecurrenceRule();
//rule.dayOfWeek = [0, new schedule.Range(4, 6)];
//0 :일요일 ~ 6 : 토요일
rule.dayOfWeek = s.dayOfWeek; // 목요일, 금요일
rule.hour = s.hour;
rule.minute = s.minute;
var job = schedule.scheduleJob(rule, function(){
// scheduleJob : rule 에 기반하여 function 이 특정요일 시간마다 일을 수행할수 있게 해주는 것
console.log('Scheduler has executed');
});
scheduleObj = job;
};
scheduleObj라는 객체를 생성하여 수정한 스케줄을 담아줄 변수를 만들고
set 이라는 함수를 만들어 dayOfWeek : 요일, hour : 시간, minute : 분 에 임시로 변수를 넣어줍니다.
그다음 job이라는 rule에 기반하여 돌아가는 함수(이번시간에는 "Scheduler has executed" 라는 문장을 터미널 창에 띄워주는 것)를 만들어주고 이것을 스케줄을 담아줄 변수인 scheduleObj에 담아줍니다.
const cancel = () => {
// 스케줄을 수정한 해도 이전 스케줄이 지속적으로 실행되기 때문에 작업이 있을시 캔슬시켜줌
if(scheduleObj != null){
scheduleObj.cancel();
}
};
이전 스케줄이 있을시 수정을 해도 계속 돌아가기 때문에 scheduleObj 가 null이 아니라면 취소시켜주는 함수를 만들고
const setScheduler = (s) => { // 켄슬과 셋팅을 위한 함수
cancel();
set(s);
};
스케줄 캔슬과 셋팅을 하는 함수를 만들어 줍니다
const scheduleData = {
dayOfWeek: [4,5],
hour: 22,
minute: 11
};
setScheduler(scheduleData);
scheduleData로 요일, 시간, 분 변수를 지정한뒤에 setScheduler를 실행시켜 줍니다.
결과

풀코드
const schedule = require('node-schedule');
let scheduleObj = null;
const set = (s) => { // 스케줄 셋팅
var rule = new schedule.RecurrenceRule();
//rule.dayOfWeek = [0, new schedule.Range(4, 6)];
//0 :일요일 ~ 6 : 토요일
rule.dayOfWeek = s.dayOfWeek; // 목요일, 금요일
rule.hour = s.hour;
rule.minute = s.minute;
var job = schedule.scheduleJob(rule, function(){
// scheduleJob : rule 에 기반하여 function 이 특정요일 시간마다 일을 수행할수 있게 해주는 것
console.log('Scheduler has executed');
});
scheduleObj = job;
};
const cancel = () => {
// 스케줄을 수정한 해도 이전 스케줄이 지속적으로 실행되기 때문에 작업이 있을시 캔슬시켜줌
if(scheduleObj != null){
scheduleObj.cancel();
}
};
const setScheduler = (s) => { // 켄슬과 셋팅을 위한 함수
cancel();
set(s);
};
const scheduleData = {
dayOfWeek: [4,5],
hour: 22,
minute: 11
};
setScheduler(scheduleData);
오랜만에 올리는 node.js 공부 ~~~