From 1d91239639c309402a747163e84293e4fa300efc Mon Sep 17 00:00:00 2001 From: Joyriver-laptop Date: Wed, 21 Aug 2024 20:53:03 +0900 Subject: [PATCH] =?UTF-8?q?Feat:=20=ED=95=98=EB=A3=A8=20=EC=A7=80=EB=82=9C?= =?UTF-8?q?=20=EB=B8=8C=EB=A6=AC=ED=95=91=EC=9D=84=20=EA=B2=8C=EC=8B=9C?= =?UTF-8?q?=EA=B8=80=EB=A1=9C=20=EC=98=AC=EB=A6=AC=EA=B3=A0,=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=ED=95=98=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KUA/today_poll/scheduler.py | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/KUA/today_poll/scheduler.py b/KUA/today_poll/scheduler.py index c2d4412..cb834c0 100644 --- a/KUA/today_poll/scheduler.py +++ b/KUA/today_poll/scheduler.py @@ -1,9 +1,11 @@ import logging from apscheduler.schedulers.background import BackgroundScheduler from django_apscheduler.jobstores import DjangoJobStore, register_events -from today_poll.models import TodayPoll -from course.models import TimeTable +from today_poll.models import TodayPoll, Briefing +from student.models import Student +from course.models import TimeTable, Post, Tag from django.utils import timezone +import json logger = logging.getLogger(__name__) def create_today_poll(): @@ -31,13 +33,35 @@ def delete_old_today_poll(): count, _ = old_polls.delete() logger.info(f"{count}개의 TodayPoll 인스턴스가 삭제되었습니다.") +def create_briefing_to_post(): + threshold = timezone.now() - timezone.timedelta(days=1) + + old_brifs = Briefing.objects.filter(created_at__lt=threshold) + student_instance = Student.objects.first() + tags = Tag.objects.filter(name='브리핑') + + for briefing in old_brifs: + post = Post.objects.create( + title=f"{briefing.created_at.strftime('%Y년-%m월-%d일')} 브리핑", + content=json.loads(briefing.content), + student= student_instance, + course_fk=briefing.course_fk, + ) + post.tags.set(tags) + logger.info(f"{post} 게시글이 생성되었습니다.") + logger.info(f"{briefing} 브리핑이 삭제되었습니다.") + briefing.delete() + + + def start(): scheduler = BackgroundScheduler() scheduler.add_jobstore(DjangoJobStore(), 'default') scheduler.add_job(create_today_poll, 'cron', hour=0, minute=0, id='create_today_poll', replace_existing=True) scheduler.add_job(delete_old_today_poll, 'cron', hour=0, minute=0, id='delete_old_today_poll', replace_existing=True) - + scheduler.add_job(create_briefing_to_post, 'cron', hour=0, minute=0, id='create_briefing_to_post', replace_existing=True) + register_events(scheduler) scheduler.start() logger.info("Scheduler started")