From f997bd99b0bafadfc3d1ed5c2a966cc2ce81b1ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=8C=80=ED=9D=AC?= <joedaehui@ajou.ac.kr> Date: Fri, 15 Nov 2024 14:15:37 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=A0=EB=8F=99=20=EC=8A=A4=EC=BC=80?= =?UTF-8?q?=EC=A4=84=20=EC=9E=90=EB=8F=99=20=EC=82=AD=EC=A0=9C=20=EC=9C=A0?= =?UTF-8?q?=ED=8B=B8=20=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80=20(#6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 3 +++ utils/scheduler.js | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 utils/scheduler.js diff --git a/app.js b/app.js index f24843b..5b24485 100644 --- a/app.js +++ b/app.js @@ -7,6 +7,7 @@ const express = require('express'); const session = require('express-session'); const passport = require('./passport'); // 변경된 경로 const flash = require('connect-flash'); +const { initScheduleCleaner } = require('./utils/scheduler'); const app = express(); @@ -40,6 +41,8 @@ const scheduleRoutes = require('./routes/schedule'); app.use('/api/schedule', scheduleRoutes); +initScheduleCleaner(); + const PORT = process.env.PORT || 3000; app.get('/', (req, res) => { diff --git a/utils/scheduler.js b/utils/scheduler.js new file mode 100644 index 0000000..e881e89 --- /dev/null +++ b/utils/scheduler.js @@ -0,0 +1,19 @@ +const cron = require('node-cron'); +const scheduleService = require('../services/scheduleService'); + +// 매주 월요일 자정에 유동 스케줄 삭제하기 +const initScheduleCleaner = () => { + cron.schedule('0 0 * * 1', async () => { + try { + await scheduleService.cleanExpiredSchedules(); + } catch (error) { + console.error('Failed to clean expired schedules:', error); + } + }, { + timezone: "Asia/Seoul" + }); +}; + +module.exports = { + initScheduleCleaner +}; \ No newline at end of file -- GitLab