마이의 개발 블로그

[NodeJS] 서버에 스케줄러 설정하기 (node-cron 모듈) 본문

개발지식/Node.js

[NodeJS] 서버에 스케줄러 설정하기 (node-cron 모듈)

개발자마이 2023. 2. 20. 16:24
반응형

설치 방법

1. 터미널에서 아래 명령어 입력하여 node-cron 모듈 설치

npm install node-cron

 

2. cron 모듈 불러오기

const cron = require("node-cron");

 

node-cron 주요 문법 설명

- cron.schedule('시간', 실행할 함수, 옵션값) 을 사용하여 스케줄러를 생성할 수 있다.

- task.start(), task.stop() 메서드를 사용하여 스케쥴러를 임의로 시작하거나 종료시킬 수 있다.

- task.destroy() 메서드를 사용하여 스케쥴러를 종료시킬 수 있다.

- cron.validate('시간') 메서드를 통해 시간 설정값이 유효한지를 판별할 수 있다. (Boolean 반환)

/*
	1. 시간 인자는 순서대로 '초(옵션) 분 시 일 월 요일'을 의미한다.
    2. 초는 옵션이고, 나머지 다섯 개의 인자는 필수값이다.
    3. 각각 0-59, 0-59, 0-23, 1-31, 1-12(또는 이름), 0-7(또는 이름) 으로 표기하여 지정할 수 있다.
    4. '*'를 사용하는 경우 모든 범위를 포함한다.
    5. 범위지정시 1-5처럼 표기
*/

cron.schedule('* * * * * *');		//매 초마다 실행
cron.schedule('* * * * *'); 		//매 분마다 실행
cron.schedule('*/3 * * * *'); 		//매 20분(60 / 3)마다 실행
cron.schedule('1-5 * * * *'); 		//모든 시간대의 1-5분에 실행
cron.schedule('*/6 50 15 20 2 *') 	//2월 20일 15시 50분의 매 10초(60/6)마다 실행


//2.20(월) 15시 50분의 매 10초마다 '실행' 문구를 출력하도록 스케줄러를 생성함
const task = cron.schedule('*/6 50 15 20 2 1', () => {
    console.log('실행');
}, {
    scheduled: false,		//false인 경우 start() 메서드를 사용해야 실행된다. 기본값은 true. 
    timezone: 'Asia/Seoul'	//시간대 기본값은 로컬타임임. 필요 시 지정.
});

출처: https://www.npmjs.com/package/node-cron

반응형
Comments