Node.js node-cron 을 사용한 스케줄러 설정 방법
Cron은 어떠한 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링 하기위한 Unix 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러 입니다.
Node.js 에서는 node-cron 이라는 모듈을 사용하여 Cron을 사용하실 수 있습니다.
그럼 Node.js 에서 node-cron 사용 방법을 알려드리도록 하겠습니다.
1. node-cron 모듈 설치
npm install node-cron
위 명령어를 사용하여 node-cron 모듈을 설치합니다.
2. node-cron 사용 방법
node-cron 모듈을 설치하였으니 이제 node.js 코드를 작성하여 사용하시면 되겠습니다.
먼저 주요 node-cron 의 주요 Method 들로 사용방법을 알려드리도록 하겠습니다!
또한 정말 중요한 실행 주기 설정은 사용 방법 설명 뒤에 작성 해두었습니다!
2-1. node-cron import
const cron = require('node-cron');
먼저 설치한 node-cron 모듈을 require로 가져옵니다.
2-2. schedule
const cron = require('node-cron');
cron.schedule('* * * * *', function () {
console.log('매 분 마다 작업 실행');
});
schedule() 로 스케줄러를 설정하고 바로 시작할 수 있습니다.
첫번째 인자로 실행 주기를 입력하고,
두번째 인자로 콜백 함수, 즉 실행할 작업을 입력하시면 됩니다.
2-3. start
const cron = require('node-cron');
var task = cron.schedule('* * * * *', function () {
console.log('매 분 마다 작업 실행');
}, {
scheduled: false
});
task.start();
schedule() 로 바로 시작할 수도 있지만,
위 코드와 같이 자동 스케줄 시작 옵션(scheduled)을 false로 설정한 뒤, start() 로 실행하실 수도 있습니다.
2-4. stop
const cron = require('node-cron');
var task = cron.schedule('* * * * *', function () {
console.log('매 분 마다 작업 실행');
});
task.stop();
stop() 을 사용하여 작업을 중지시킬 수 있습니다.
다시 시작시키기 전에는 작업이 실행되지 않습니다.
2-5. destory
const cron = require('node-cron');
var task = cron.schedule('* * * * *', function () {
console.log('매 분 마다 작업 실행');
});
task.destroy();
destory() 을 사용하여 작업을 아예 삭제시킬 수 있습니다.
destory 한 작업은 다시 실행하실 수 없습니다.
2-6. validate
const cron = require('node-cron');
var valid = cron.validate('59 * * * *');
var invalid = cron.validate('60 * * * *');
console.log(valid);
console.log(invalid);
// Output :
// ture
// false
validate 를 사용하여 작성한 실행주기가 유효한지 확인할 수 있습니다.
3. node-cron 실행 주기 설정 방법
그럼 정말 중요한 실행 주기를 설정하는 방법을 간단하게 알려드리도록 하겠습니다.
cron이 익숙하신 분이라면 바로 알아보시리라 생각합니다!
node-cron 의 실행 주기 입력 방법입니다.
기본적으로 입력 자리 5개를 사용하여 실행 주기를 입력하고 초단위로 실행 주기를 설정하고 싶으시다면 6개를 사용하시면 됩니다.
이해가 쉽도록 예시를 몇가지 작성 해드리도록 하겠습니다.
매 분 마다 작업 실행
const cron = require('node-cron');
cron.schedule('* * * * *', function () {
console.log('매 분 마다 작업 실행 :', new Date().toString());
});
// Output
// 매 분 마다 작업 실행 : Wed Apr 14 2021 00:01:00 GMT+0900 (대한민국 표준시)
// 매 분 마다 작업 실행 : Wed Apr 14 2021 00:02:00 GMT+0900 (대한민국 표준시)
// 매 분 마다 작업 실행 : Wed Apr 14 2021 00:03:00 GMT+0900 (대한민국 표준시)
// 매 분 마다 작업 실행 : Wed Apr 14 2021 00:04:00 GMT+0900 (대한민국 표준시)
// 매 분 마다 작업 실행 : Wed Apr 14 2021 00:05:00 GMT+0900 (대한민국 표준시)
2분 마다 작업 실행
const cron = require('node-cron');
cron.schedule('*/2 * * * *', function () {
console.log('2분 마다 작업 실행 :', new Date().toString());
});
// Output
// 2분 마다 작업 실행 : Wed Apr 14 2021 00:06:00 GMT+0900 (대한민국 표준시)
// 2분 마다 작업 실행 : Wed Apr 14 2021 00:08:00 GMT+0900 (대한민국 표준시)
// 2분 마다 작업 실행 : Wed Apr 14 2021 00:10:00 GMT+0900 (대한민국 표준시)
// 2분 마다 작업 실행 : Wed Apr 14 2021 00:12:00 GMT+0900 (대한민국 표준시)
// 2분 마다 작업 실행 : Wed Apr 14 2021 00:14:00 GMT+0900 (대한민국 표준시)
매 초마다 작업 실행
const cron = require('node-cron');
cron.schedule('* * * * * *', function () {
console.log('매 초 마다 작업 실행 :', new Date().toString());
});
// Output
// 매 초 마다 작업 실행 : Wed Apr 14 2021 00:01:00 GMT+0900 (대한민국 표준시)
// 매 초 마다 작업 실행 : Wed Apr 14 2021 00:01:01 GMT+0900 (대한민국 표준시)
// 매 초 마다 작업 실행 : Wed Apr 14 2021 00:01:02 GMT+0900 (대한민국 표준시)
// 매 초 마다 작업 실행 : Wed Apr 14 2021 00:01:03 GMT+0900 (대한민국 표준시)
// 매 초 마다 작업 실행 : Wed Apr 14 2021 00:01:04 GMT+0900 (대한민국 표준시)
※ 실행 주기 입력 자리가 6개인 것을 잘 보시기 바랍니다!
지정 시간마다 작업 실행
const cron = require('node-cron');
cron.schedule('1,2,3 * * * *', function () {
console.log('매 1분, 2분, 3분에 작업 실행 :', new Date().toString());
});
// Output
// 매 1분, 2분, 3분에 작업 실행 : Wed Apr 14 2021 00:01:00 GMT+0900 (대한민국 표준시)
// 매 1분, 2분, 3분에 작업 실행 : Wed Apr 14 2021 00:02:00 GMT+0900 (대한민국 표준시)
// 매 1분, 2분, 3분에 작업 실행 : Wed Apr 14 2021 00:03:00 GMT+0900 (대한민국 표준시)
// 매 1분, 2분, 3분에 작업 실행 : Wed Apr 14 2021 01:01:00 GMT+0900 (대한민국 표준시)
// 매 1분, 2분, 3분에 마다 작업 실행 : Wed Apr 14 2021 01:02:00 GMT+0900 (대한민국 표준시)
const cron = require('node-cron');
cron.schedule('1-4 * * * *', function () {
console.log('매 1분, 2분, 3분, 4분에 작업 실행 :', new Date().toString());
});
// Output
// 매 1분, 2분, 3분, 4분에 작업 실행 : Wed Apr 14 2021 00:01:00 GMT+0900 (대한민국 표준시)
// 매 1분, 2분, 3분, 4분에 작업 실행 : Wed Apr 14 2021 00:02:00 GMT+0900 (대한민국 표준시)
// 매 1분, 2분, 3분, 4분에 작업 실행 : Wed Apr 14 2021 00:03:00 GMT+0900 (대한민국 표준시)
// 매 1분, 2분, 3분, 4분에 작업 실행 : Wed Apr 14 2021 00:04:00 GMT+0900 (대한민국 표준시)
// 매 1분, 2분, 3분, 4분에 마다 작업 실행 : Wed Apr 14 2021 01:01:00 GMT+0900 (대한민국 표준시)
※ 앞서 설명한 몇 분 마다 실행하는 것이 아닌, 각 시간의 지정 분 마다 실행되는 차이점에 주의해주시기 바랍니다!
작성 방법을 어느정도 이해하시면 그 다음부터는 수월하게 사용 가능 하시리라 생각됩니다!
이상으로 node-cron 사용 방법 설명을 마치도록 하겠습니다.
도움이 되셨다면 공감, 댓글 부탁드립니다!
궁금하신 점이나 요청사항은 언제든지 말씀해주세요!
피드백도 언제나 환영입니다!
감사합니다.
'Developer > Node.js' 카테고리의 다른 글
bundlephobia.com 소개 및 사용 방법 - npm package cost 확인 및 비교 사이트 (0) | 2021.10.14 |
---|---|
Node.js PostgreSQL Database 연동 및 사용 방법 (0) | 2021.04.16 |
Linux Node.js, npm 설치 방법 (nvm) (0) | 2021.04.14 |
Node.js Base64 Encoding, Decoding 방법 (2) | 2021.03.24 |
Node.js Socket.IO CORS allow all (4) | 2021.03.23 |
댓글