[NodeJs] node에서 특정작업 반복하기 (node-schedule)

유사개발자·2022년 4월 20일
0

NodeJs

목록 보기
1/1
post-thumbnail

현재 회사 홈페이지를 제작 중 인데요. 채용공고 페이지를 만들던 도중
채용기간이 만료된 공고는 자동으로 마감처리를 해줘야하는 기능이 필요하여
node-schedule라는 모듈을 사용해 처리했습니다.

🧐node-schedule이란

node-schedule란 작업을 반복적으로 특정시간에 처리할 수 있는 라이브러리 입니다.

1. node-schedule 설치

npm install node-schedule --save

2. 스케쥴 구성

schedule.js파일을 만들어 반복작업 할 스케쥴을 구성해줍니다.
RecurrenceRule메소드를 사용하여 세부사항을 설정해줄수 있습니다.

  • secnd
  • munute
  • hour
  • date
  • month
  • year
  • dayOfWeek

이번 예제에선 매일 24시에 현재날짜를 가져오는 스케쥴을 작성해보겠습니다.

참고로 시간설정은 24시간제 입니다.

//schedule.js
const schedule = require('node-schedule'); //node-schedule모듈 불러오기
module.exports = {
    schedule_job: () => {
        let rule = new schedule.RecurrenceRule();
        rule.hour = 24;
      
        schedule.scheduleJob(rule, async()=>{
            //매일 24시에 실행될 로직
            let today = new Date();
            console.log(today);
        })
    }
}

3. app.js에서 불러와 사용하기

app.js에서 schedule.js의 schedule_job함수를 불러와 사용해주면 끝 입니다.

//app.js
var schedule = require("../controllers/schedule.js");

module.exports = function(app) {
	app.use(passport.initialize());
  	app.use(passport.session());
  	app.use(flash());
  	app.use(nocache())
  	app.use(express.static(config.get('path.public')));
	
  	
  	schedule.schedule_job(); //<-- schedule.js에서 함수 불러옴
}
profile
개발자와 유사한 개발자입니다

0개의 댓글