투케이2K

113. (NodeJs) [Mac Os] [Schedule] : node-schedule 스케줄 동작 Role 규칙 정의 및 작업 수행 본문

NodeJs

113. (NodeJs) [Mac Os] [Schedule] : node-schedule 스케줄 동작 Role 규칙 정의 및 작업 수행

투케이2K 2024. 1. 24. 04:49
반응형

[개발 환경 설정]

개발 툴 : VS CODE

개발 언어 :NodeJs

 
 

[사전) NodeJS 프로젝트 설정 방법]

 

[app.js : 소스 코드]

// ----------------------------------------------------------------------------------------------

// ---------------------------------------
// [모듈 추가]
// ---------------------------------------
const express = require('express')
const app = express()



// ---------------------------------------
// [모듈 추가]
// ---------------------------------------
app.set('view engine', 'ejs') // [Page] : [Render]
app.set('views', './views') // [Page] : [Render]



// ---------------------------------------
// [모듈 추가]
// ---------------------------------------
var bodyParser = require('body-parser'); // [body-parser 사용]

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());



// ---------------------------------------
// [모듈 추가]
// ---------------------------------------
var nocache = require('nocache'); // [nocache 사용]
app.use(nocache());



// ---------------------------------------
// [모듈 추가]
// ---------------------------------------
const oracledb = require('oracledb'); // [오라클 DB]
oracledb.autoCommit = true; // [오토 커밋 설정]
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;



// ---------------------------------------
// [모듈 추가]
// ---------------------------------------
const schedule = require('node-schedule'); // [노드 서버 스케줄러]


// ----------------------------------------------------------------------------------------------

// [노드 서버 스케줄러 동작 정의]
const scheduleRole = new schedule.RecurrenceRule() // [스케줄 동작 규칙 지정]
scheduleRole.second = 30 // [매분 >> 30초 마다 동작]

const job = () => {
    schedule.scheduleJob(scheduleRole, function(){

        // [시간 계산]
        const curr = new Date();
        const utc = curr.getTime() + (curr.getTimezoneOffset() * 60 * 1000);
        const KR_TIME_DIFF = 9 * 60 * 60 * 1000;
        const kr_curr = new Date(utc + (KR_TIME_DIFF)).toLocaleString();
    
    
        console.log("")
        console.log("==============================================================================")
        console.log("[Server] :: [App] :: [scheduleJob] :: [Start]")
        console.log("--------------------------------------------------------------------------")
        console.log("[Now Date] :: " + kr_curr)
        console.log("==============================================================================")
        console.log("")
    });
}

// ----------------------------------------------------------------------------------------------

// [Server] : [Start]
//*
app.listen(3000, function () {
    console.log("")
    console.log("==============================================================================")
    console.log("[Server] :: [Port = 3000] :: [Start]")
    console.log("==============================================================================")
    console.log("")

    // [서버 구동과 동시에 스케줄 동작 지정]
    job();
})
// */

// ----------------------------------------------------------------------------------------------
 

[결과 출력]

 

 

반응형
Comments