티스토리 뷰
node-cron을 이용한 NodeJS 스케줄러 설정
node-cron 기본 개념
Cron이란
Cron은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 Job 스케줄러입니다. 소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron을 사용합니다.
node-cron
node-cron 모듈은 GNU crontab을 기반으로 하는 node.js용 순수 자바 스크립트의 가벼운 작업 스케줄러입니다. 이 모듈을 사용하면 전체 crontab 구문을 사용하여 node.js에서 작업을 예약할 수 있습니다.
node-cron에 대한 자세한 설명은 npm 사이트인 https://www.npmjs.com/package/node-cron에서 확인할 수 있습니다.
node-cron 사용 방법
node-cron 설치
npm을 사용하여 node-cron 모듈을 설치합니다. --save
옵션을 사용하면 package.json
에 해당 모듈을 추가할 수 있습니다.
npm install --save node-cron
node-cron 사용
설치가 완료되면 해당 NodeJS 프로젝트에서 node-cron 모듈을 사용할 수 있습니다.
테스트를 위해 NodeJS 프로젝트의 app.js
파일이나 index.js
파일에 다음 내용을 추가합니다. (자신의 NodeJS 프로젝트에서 기본적으로 실행하는 파일에 진행하면 됩니다.)
//////////////////////////////// node-cron /////////////////////////////////
var cron = require('node-cron');
// second minute hour day-of-month month day-of-week
cron.schedule('* * * * *', function(){
console.log('node-cron 실행 테스트');
});
콜백 함수 안에 실행할 작업을 작성하면 됩니다. 여기에서는 node-cron이 정상적으로 실행되는지만 확인하기 위해 console.log를 작성하였습니다.
node-cron 실행 주기 설정
node-cron 실행 주기
이제 실행 주기를 설정합니다. node-cron이 지원하는 옵션은 다음과 같습니다.
Allowed fields
Allowed values
field | value |
---|---|
second | 0-59 |
minute | 0-59 |
hour | 0-23 |
day of month | 1-31 |
month | 1-12 (or names) |
day of week | 0-7 (or names, 0 or 7 are sunday) |
node-cron 실행 주기 설정 예제
cron 실행 주기에 대한 예제는 다음과 같습니다.
Using multiples values
콤마(,
)를 사용해 다중 값을 사용할 수 있습니다.
// 다중 값 사용
var cron = require('node-cron');
cron.schedule('1,2,4,5 * * * *', () => {
console.log('매 1, 2, 4, 5분 마다 실행');
});
Using ranges
값의 범위를 사용할 수 있습니다.
// 범위 값 사용
var cron = require('node-cron');
cron.schedule('1-5 * * * *', () => {
console.log('매 1-5분 마다 실행');
});
Using step values
숫자 범위와 '/
' 다음에 숫자와 함께 사용할 수 있습니다.
// 숫자 범위 + / + 숫자
var cron = require('node-cron');
cron.schedule('1-10/2 * * * *', () => {
console.log('매 2,4,6,8,10분 마다 실행');
});
숫자 범위 대신 '*'
가 와도 무방합니다.
// * + / + 숫자
var cron = require('node-cron');
cron.schedule('*/2 * * * *', () => {
console.log('매 2분 마다 실행');
});
Using names
month
와 week day
항목에는 이름이나 약어를 사용할 수 있습니다.
// 이름 사용
var cron = require('node-cron');
cron.schedule('* * * January,September Sunday', () => {
console.log('1월과 9월의 일요일 마다 실행');
});
// 약어 사용
var cron = require('node-cron');
cron.schedule('* * * Jan,Sep Sun', () => {
console.log('1월과 9월의 일요일 마다 실행');
});
'프로그래밍 언어 > Node.js' 카테고리의 다른 글
[Node.js] Javascript: 지정한 길이에 맞게 배열을 선언하고 값을 초기화하는 방법들 (1) | 2020.04.02 |
---|---|
[Node.js] Javascript: 절대값 구하기 (Math.abs) (0) | 2020.04.02 |
[Node.js] javascript: 실수를 올림, 내림, 반올림하여 정수로 만드는 Math 함수들 (0) | 2020.03.18 |
[Node.js] Javascript의 자료형 비교, 확인, 변환 (0) | 2020.03.17 |
[Node.js] cheerio 모듈을 이용한 xml 파싱: self-closing tag의 text 받아오기 (0) | 2019.04.22 |
- Total
- Today
- Yesterday
- 코딩테스트
- docker
- 기초 of 기초 데이터 개념
- 코딜리티
- codility
- 알고리즘
- 빅데이터 기초
- ubuntu
- Hyperledger Fabric v1.2
- 빅데이터
- Private Data
- Hyperledger Fabric
- 어서와 데이터는 처음이지
- javascript
- Hyperledger Indy
- 블록체인
- Hyperledger Fabric v1.1
- 빅데이터 강의
- 하이퍼레저 패브릭
- 문제풀이
- 하이퍼레저 인디
- 코테
- Blockchain
- DOCs
- 직딩잇템
- ambrosus
- 블록 체인
- 빅데이터 교육
- 하이퍼레저 페브릭
- 암브로셔스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |