Skip to content

Commit

Permalink
Feat: 하루 지난 브리핑을 게시글로 올리고, 삭제하는 기능 추가.
Browse files Browse the repository at this point in the history
  • Loading branch information
joy-river committed Aug 21, 2024
1 parent 0c212ba commit 1d91239
Showing 1 changed file with 27 additions and 3 deletions.
30 changes: 27 additions & 3 deletions KUA/today_poll/scheduler.py
Original file line number Diff line number Diff line change
@@ -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():
Expand Down Expand Up @@ -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")

0 comments on commit 1d91239

Please sign in to comment.