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