From 32d94dab07b7919dea6483a701a7add3f165230c Mon Sep 17 00:00:00 2001 From: Wo-ogie <siwall0105@gmail.com> Date: Sun, 10 Dec 2023 03:40:47 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=84=9C=EB=B2=84=20=EA=B5=AC=EB=8F=99?= =?UTF-8?q?=20=EC=8B=9C=20=EC=95=84=EC=A7=81=20=EC=A2=85=EB=A3=8C=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EC=9D=80=20=EC=95=BD=EC=86=8D=EB=93=A4?= =?UTF-8?q?=EC=9D=84=20scheduler=EC=97=90=20=EB=93=B1=EB=A1=9D=ED=95=98?= =?UTF-8?q?=EC=97=AC=20=EC=A2=85=EB=A3=8C=EB=90=A0=20=EC=88=98=20=EC=9E=88?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=84=A4=EC=A0=95=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 3 +++ schedules/checkMeetings.js | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 schedules/checkMeetings.js diff --git a/app.js b/app.js index 46a87da..419c5b5 100644 --- a/app.js +++ b/app.js @@ -13,7 +13,10 @@ const participantRouter = require('./routes/participant'); const myScheduleRouter = require('./routes/mySchedule'); const { sequelize } = require('./models'); +const checkMeetings = require('./schedules/checkMeetings'); + const app = express(); +checkMeetings(); app.set('port', process.env.PORT || 3000); sequelize diff --git a/schedules/checkMeetings.js b/schedules/checkMeetings.js new file mode 100644 index 0000000..73db5af --- /dev/null +++ b/schedules/checkMeetings.js @@ -0,0 +1,31 @@ +const { scheduleJob } = require('node-schedule'); +const { Op } = require('sequelize'); +const { Meeting } = require('../models'); +const { closeMeetingById } = require('../services/meeting'); + +module.exports = async () => { + console.log( + 'Check meeting... 종료되지 않은 미팅을 찾아 스케줄러에 등록합니다.', + ); + try { + const meetings = await Meeting.findAll({ + where: { + voteExpiresAt: { + [Op.ne]: null, + }, + isClosed: false, + }, + }); + console.log('meetings', meetings); + meetings.forEach((meeting) => { + scheduleJob(meeting.voteExpiresAt, async () => { + await closeMeetingById(meeting.id); + }); + }); + } catch (error) { + console.log( + 'Scheduler에 등록할 meeting을 확인하던 중 에러가 발생했습니다.', + error, + ); + } +}; -- GitLab