Notice
Recent Posts
Recent Comments
Link
투케이2K
114. (NodeJs) [Mac Os] [Schedule] : node-schedule 스케줄 동작 Role 규칙 String 문자열 형식 정의 방법 본문
NodeJs
114. (NodeJs) [Mac Os] [Schedule] : node-schedule 스케줄 동작 Role 규칙 String 문자열 형식 정의 방법
투케이2K 2024. 1. 26. 09:06[개발 환경 설정]
개발 툴 : 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 schedule = require('node-schedule'); // [노드 서버 스케줄러]
// ----------------------------------------------------------------------------------------------
/**
* ----------------------------------
* [노드 서버 스케줄러 동작 정의]
* ----------------------------------
* 1. Role 설정 순서 (순차적) :
*
* second(0-59)
* minute(0-59)
* hour(0-23)
* day(1-31)
* month(1-12)
* day of week(0-7)
* ----------------------------------
* 2. 예시 : 매분 30 초 마다 스케줄 동작
*
* [30 * * * * *]
* ----------------------------------
* 3. 예시 : 매일 특정 시간 및 특정 분에 동작 (오후 3시 30분)
*
* [* 30 15 * * *]
* ----------------------------------
*/
const scheduleRole = "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();
})
// */
// ----------------------------------------------------------------------------------------------
[결과 출력]
반응형
'NodeJs' 카테고리의 다른 글
Comments