Cron은 어떠한 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링 하기위한 Unix 계열 컴퓨터 운영체제의 시간 기반 잡 스케줄러 이다. Node.js에는 node-cron 이라는 모듈을 사용하여 Cron을 사용할 수 있다.
이번 프로젝트에서 처음 사용하게 되었는데 제대로 알고 사용하고 싶어서 이렇게 블로그를 작성한다.
npm install node-cron
node-cron을 사용하기 위해서는 먼저 프로젝트에 npm을 이용하여 다음 명령어로 설치해야 한다.
const cron = require('node-cron')
cron.schedule('* * * * *', () => {
console.log('매 분마다 실행됩니다.');
});
node-cron을 사용하여 작업을 예약하려면 다음과 같이 코드를 작성해야 한다.
* * * * *
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── 요일 (0 - 7) (0과 7은 일요일)
│ │ │ └─────────── 월 (1 - 12)
│ │ └───────────────── 일 (1 - 31)
│ └─────────────────────── 시 (0 - 23)
└───────────────────────────── 분 (0 - 59)
각 구성 요소는 숫자 또는 와일드카드(*)를 사용하여 지정할 수 있다. 예를 들어,*****
는 매 분마다 작업을 실행하도록 지정하는 것이다.'0 * * * * *'
는 매시 정각에 작업을 실행하도록 지정하는 것이고, 0 0 * * *
는 매일 자정에 작업을 실행하도록 지정한 것이다.
const cron = require('node-cron');
cron.schedule('30 9 * * *', () => {
console.log('매일 오전 9시 30분에 실행됩니다.');
});
위의 식은 cron 표현식을 30 9 * * *
로 변경하여 매일 오전 9시 30분에 작업을 실행하도록 예약했다.
const cron = require('node-cron');
cron.schedule('* * * * 1', () => {
console.log('매주 월요일마다 실행됩니다.');
});
위의 식은 cron 표현식의 요일 필드를 1
로 지정하여 매주 월요일마다 작업을 실행하도록 예약하였다. (0은 일요일을 나타낸다.)
마무리하며...
node-cron을 사용하여 주기적으로 실행되는 작업을 간편하게 예약하고 실행할 수 있다는 것을 알게 되었고 cron 표현식을 통해 다양한 예약 스케쥴을 정의 할 수 있으며, 스케줄을 쉽게 관리할 수 있다는것을 알게 되었다.
아직 블로그에 미숙하지만 node-cron의 자세한 사용법과 예제는 공식 문서를 참고
부탁드립니다.