본문 바로가기
Django

[Django] 스케줄러 사용하기

by 코끼리_땃쥐 2024. 8. 29.

APScheduler를 사용하여 Django 프로젝트에서 예약된 작업을 쉽게 설정하고 실행하는 방법


Django 프로젝트에서 작업을 예약하면 정기적인 작업을 자동화하거나 알림을 보내거나 일상적인 유지 관리를 수행하는 등 기능이 크게 향상될 수 있습니다. 이 튜토리얼에서는 작업 예약을 위한 강력하고 유연한 Python 라이브러리인 APScheduler를 사용하여 Django에서 예약된 작업을 설정하는 과정을 안내합니다.

 

 

 

1단계: APScheduler 설치

코드를 살펴보기 전에 첫 번째 단계는 APScheduler를 설치하는 것입니다. Django 프로젝트의 가상 환경에 있는지 확인하고 다음 명령을 실행하세요.

pip install apscheduler

 

그러면 APScheduler와 해당 종속 항목이 설치됩니다.

 

 

2단계: Django 구성에 APScheduler 추가

다음으로 Django 프로젝트 설정에 django_apscheduler를 포함해야 합니다. 'settings.py' 파일을 열고 'INSTALLED_APPS' 목록에 다음 줄을 추가하세요.

INSTALLED_APPS = [
    'django_apscheduler',
    # ... other installed apps
]

이렇게 하면 Django가 프로젝트 내에서 APScheduler 패키지를 인식하고 통합할 수 있습니다.

 

3단계: 예약 작업 생성

APScheduler를 설치하고 구성하면 이제 첫 번째 예약 작업을 생성할 수 있습니다. Django 앱 중 하나(또는 예약된 작업 전용 앱)에서 'tasks.py'라는 파일을 만듭니다. 이 파일에서는 APScheduler를 사용하여 작업을 정의하고 예약합니다.

 

다음은 간단한 작업을 설정하는 방법의 예입니다.

# tasks.py

from apscheduler.schedulers.background import BackgroundScheduler

# scheduler 초기화
scheduler = BackgroundScheduler()

# 작업 정의
def work_1():
    # 원하는 작업
    print("Task executed!")

# 60초마자 한번씩
scheduler.add_job(work_1, 'interval', seconds=60)

이 예에서 'work_1'은 실행하려는 작업입니다. interval' 트리거와 함께 scheduler.add_job()` 메소드를 사용하여 60초마다 실행되도록 설정되어 있습니다.

 

4단계: wsgi.py에서 스케줄러 시작

마지막 단계는 Django 애플리케이션이 실행될 때 스케줄러가 시작되는지 확인하는 것입니다. 이렇게 하려면 Django 프로젝트의 wsgi.py 파일을 수정해야 합니다.


wsgi.py 파일에 다음 코드를 추가하세요:

# wsgi.py

# ....

from .tasks import scheduler

# 스케줄러시작
scheduler.start()

이 코드는 tasks.py 파일에서 스케줄러를 가져오고 Django 애플리케이션이 시작될 때 시작됩니다.

 

결론

이러한 간단한 단계를 통해 APScheduler를 사용하여 Django 프로젝트에서 예약된 작업을 쉽게 설정하고 실행할 수 있습니다. 정기적인 간격으로, 특정 날짜에 또는 더 복잡한 일정에 따라 작업을 실행해야 하는 경우 APScheduler는 모든 작업을 처리할 수 있는 유연성과 성능을 제공합니다.

이 가이드를 따르면 Django 프로젝트에 통합된 완전한 기능의 작업 스케줄러를 갖게 되어 다양한 작업을 자동화하고 애플리케이션의 기능을 향상시킬 수 있습니다.

댓글