JS Coding
[Node.js] 노드 Scheduler API 활용 및 사용 본문
노드에서 제공하는 일정 시간 자동 api 실행 시켜주는 api가 있다.
작성 된 코드를 먼저 보여주고 설명 하도록 하겠다.
const nowTime = moment().format('YYYY-MM-DD');
const todayMidnight = moment().startOf('day').format('YYYY-MM-DD');
const rule = new nodeSchedule.RecurrenceRule();
rule.second = 10;
const job = nodeSchedule.scheduleJob('0 0 * * *', function () {
try {
missionEndDateScheduleExecution()
.then((result) => {
console.log('노드 스케줄 체크 확인 ');
console.log(result);
console.log('현재시간 : ' + nowTime);
console.log('오늘 정각 : ' + todayMidnight);
})
.catch((error) => {
console.error('노드 스케줄 실행 중 오류가 발생했습니다:', error);
});
} catch (error) {
throw new HttpException(400, { error: ['BAD REQUEST'] });
}
});
Node.js로 프로젝트를 만들 때 서버를 실행 시키는 js파일이 있을 것이다.
보통 app.js , main.js 등으로 이름 지어 생성해서 하고는 하는데
서버가 만약에 중지 되어 OFF 되었을 때를 대비해 다시 재가동 되었을 때 실행 되도록 여기에 로직을 구현 하였다.
일단 터미널에 노드 스케줄을 설치 한다.
npm install node-schedule 를 입력하여 설치하면 된다.
그 다음에 import 하여 사용 할수 있도록 main.js에 작성 한다.
그러면 사용 할 준비는 끝났다.
글쓴이는 매일 정각에 API 가 실행 되도록 하기 위해서
nodeSchedule.schedulJob 을 이용해서 설정 해 놓았다.
' 0 0 을 작성 하였는데 왼쪽 기준으로 분, 시 , 일, 월, 년 으로 구성하여 사용 할 수 있는데
* 를 작성하면 매일 무한루프를 설정한다고 생각하면 되겠다.
' 0 0 * * * ' 으로 하면 * 년 * 월 * 일 00:00 에 실행 되도록 설정한 것이 된다.
그다음엔 function 안에 실행 시키고자 하는 로직을 작성하면 된다.
글쓴이는 람다 형식으로 하여 then 로직 구현 이후 처리로 console을 작성 하였고
.catch문으로 예외처리를 해 놓았다.
이처럼 간편하게 사용 할 수 있으며, 원하는 시간의 반복적이거나 단일 적으로 스케줄링해서 api를 실행 시킬 수 있다.
'JavaScript' 카테고리의 다른 글
[Node.js] Node.js 메일 전송 하는 코드(인증코드 전송) (0) | 2024.04.23 |
---|---|
[Node.js] Node.js 입문자 초기 세팅 (0) | 2024.04.05 |
[JavaScript] Chat.js 를 이용한 차트 만들기 (0) | 2023.11.10 |
[JavaScript] 자바스크립트에서 사용되는 "This" 2편 (0) | 2023.11.10 |
[JavaSciprt] 자바스크립트에서 사용되는 "This" (0) | 2023.11.10 |