반응형
npm i --save node-schedule

const schedule = require("node-schedule");
const job01 = schedule.scheduleJob("10 * * * * *", () => {
console.log("[job01] 매 분 10초마다 실행 > " + new Date());
});
const job02 = schedule.scheduleJob("*/10 * * * * *", () => {
console.log("[job02] 매 10초마다 실행 > " + new Date());
});

node를 사용하다 보면, 특정 시간마다 반복적으로 작업되도록 기능을 추가하고 싶을 때가 있습니다. 이 경우 node-schedule를 활용하면 가능합니다.
먼저 아래와 같이 node-schedule API를 추가해 줍니다.
$> npm i --save node-schedule
그 후 원하는 파일에서 아래와 같이 불러와 줍니다.
const schedule = require("node-schedule");
사용은 scheduleJob을 통하여 가능합니다.
schedule.scheduleJob(반복조건, 함수);
반복 조건은 아래와 같습니다.
| * | * | * | * | * | * |
| 초 | 분 | 시 | 일 | 월 | 주차 |
| 구분 | 표기 내용 |
| 초 | 0 - 59. 매 분 n초에 반복합니다. Optional |
| 분 | 0 - 59. 매 시간 n분에 반복합니다. |
| 시 | 0 - 23. 매 일 n시에 반복합니다. |
| 일 | 1 - 31. 매 월 n일에 반복합니다. |
| 월 | 1 - 12. 매 년 n월에 반복합니다. |
| 주차 | 0 - 7. 매 주 n요일에 반복합니다. (0과 7은 일요일입니다.) |
| 표기방법 | 표기 내용 |
| * | 모든 값을 의미합니다. ex) minute 자리에 * 사용된 경우 → 매 분마다, house 자리에 * 사용 된 경우 → 매 시간 마다 반복합니다. |
| ? | 해당 스케쥴링이 시작된 시점의 값 ex) 0 ? ? * * * → 12시 30분에 시작된 경우 → 매 일 12시 30분 0초 마다 반복합니다. |
| / | 간격을 의미합니다. ex) 0 10 */5 * * * → 5시간 마다 10분 0초 에 반복합니다. |
| - | 기간 범위를 의미합니다. ex) 0 */2 9-18 * * * → 매일 9시부터 18시까지 2시간 마다 반복합니다. |
위 결과를 다시 보면
job01의 결과로 매 분 10초마다 반복됨을 확인할 수 있고

job02의 결과로 매 10초마다 반복됨을 확인 할 수 있습니다.

반응형
'개발 창고 > NodeJS' 카테고리의 다른 글
| [Javascript] split - 정수 배열 만들기 (0) | 2023.01.12 |
|---|---|
| [Mail] nodemailer - 메일 발송하기 (1) | 2022.12.30 |
| PDF 이미지 추출하기 (0) | 2022.11.28 |
| [React] Component에서 useParams 사용하기 (0) | 2022.11.07 |
| [React] String to Html 렌더링 (0) | 2022.11.07 |