개발 창고/NodeJS

[Scheduler] node-scheduler

로이제로 2022. 12. 28. 22:00
반응형
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초마다 반복됨을 확인 할 수 있습니다.

반응형