diff --git a/app.js b/app.js index f24843b3591afc52a33338e0914a846fdf4d951c..5b244850efc525f6b2393b0844c6fc9b07a9694e 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 0000000000000000000000000000000000000000..e881e899d6906bc9dd8d8f822b6fe3a84e2d8660 --- /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