현재 회사 홈페이지를 제작 중 인데요. 채용공고 페이지를 만들던 도중
채용기간이 만료된 공고는 자동으로 마감처리를 해줘야하는 기능이 필요하여
node-schedule라는 모듈을 사용해 처리했습니다.
node-schedule란 작업을 반복적으로 특정시간에 처리할 수 있는 라이브러리 입니다.
npm install node-schedule --save
schedule.js파일을 만들어 반복작업 할 스케쥴을 구성해줍니다.
RecurrenceRule메소드를 사용하여 세부사항을 설정해줄수 있습니다.
이번 예제에선 매일 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);
})
}
}
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에서 함수 불러옴
}