.jpeg)
크론이란 원래 유닉스 계열 컴퓨터에서 특정한 작업을 시간기반으로 반복 실행하는 잡 스케줄입니다. 특정시간에 특정 작업을 꾸준히 실행해야할 일이 있을때 유용하게 쓰이는 기능입니다.
두가지의 차이와 사용방법과 실제 사용한 후기 까지 정리해보겠습니다.
먼저 설치를 해줍니다.
$ npm install --save node-cron
이런식으로 사용됩니다.
var cron = require('node-cron');
cron.schedule('* * * * *', function(){
// 이부분에 스케쥴 될 Data 값이 들어감
});
크론의 핵심은 시간 설정 입니다.
'* * * * *' -> 순서대로
second, minute, hour, day of month, month, day of week
second : 0-59
minute : 0-59
hour : 0-23
day of month : 1-31
month : 1-12 또는 영어로 월마다 단어로 표현가능
day of week : 0-7 또는 요일을 영어로 표현가능(0,7 이 sunday)

36분,38분,40분에 실행하겠다라는 뜻입니다. (잘보면 뒤쪽으로 별이 4개임)
36분마다 38분마다 40분마다가 아님 !!!

콘솔창에 짜라란 ~ 36분,38분,40 찍힘

뒤쪽으로 별이 5개니간 여기서 36,38,40은 땡시땡분36초,38초,40초에 실행하겠다는거!!

이런식으로 땡분의 초마다 찍힘니다. !

40분부터 45분까지 분마다 찍을땐 이렇게 사용합니다.



cron을 task라는 변수에 담아서 메소드로 사용이 가능하다.
.start() = 예약 된 작업을 시작합니다.
.stop() = 다시 시작하지 않으면 작업이 실행되지 않습니다.
.destroy() = 작업이 중지되고 완전히 파괴됩니다.
node-cron가 큰차이가 있는건 아닙니다
그러나 npm 다운수나 github folk수를 비교해 보았을때 node-shedule이 node-cron 보다 인기가 있다는 사실은 밝혀졌습니다.
설치를 먼저 해봅니다
$ npm install --save node-schedule
가장 큰 차이라고 하면 node-shedule은 Object literal 문법이 적용가능하다는 점입니다. non-Cron 스타일인 직관적인 객체 형식으로 정의 할 수 있습니다.
// Cron style schedule.scheduleJob('30 11 * * 6', () => {}) // non-Cron style schedule.scheduleJob({minute: 30, hour: 11, dayOfWeek: 6}, () => {})
//월~일 18시30분 실행
const schedule = require('node-schedule');
const rule = new schedule.RecurrenceRule();
rule.dayOfWeek = [0, new schedule.Range(0, 6)];
rule.hour = 18;
rule.minute = 30;
const k = schedule.scheduleJob(rule, () => {
console.log('Recurrence Rule Scheduling');
})
const rule = new schedule.RecurrenceRule(); 인스턴스를 생성후 시간의 범위를 지정해 줄 수도 있다.
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!');
});
현재 시간으로 부터 5초뒤 시작하구 10초뒤 끝나는 예제입니다.