on
Django Scheduler 사용하는 방법
Django Scheduler 사용하는 방법
프로젝트에서 주기적으로 실행해야 하는 기능이 필요할 때가 있다.
API call을 주기적으로 받아서 데이터 전처리 후, DB에 적재하는
작업같은 경우 스케줄러를 필요로 한다.
Django에서 사용할 수 있는 스케줄러 종류는 다양하지만,
APScheduler를 이용하는 방법을 알아보자.
다음 예제는 매분의 10초마다 jobs.py의 schedule_api
함수를 실행하는 로직이다.
#1 APScheduler 설치하기
먼저 apscheduler 모듈을 설치해준다.
1 pip install apscheduler cs
#2 Jobs 패키지 설치
프로젝트 내 Jobs 디렉토리를 만들어준다.
디렉토리 내에는 jobs.py와 updater.py 두가지
파일을 생성해준다.
#3 updater.py
#4 jobs.py
1 2 3 4 5 6 7 8 9 10 11 12 13 from django.conf import settings from time import time import requests import json import random from datetime import datetime timeZone = datetime.now() def schedule_api(): print ( " Every 10 seconds this executed" ) print ( " Now : %s" %timeZone.second) print ( "This is SCHEDULER APPS PROCESSING" ) cs
#5 apps.py 수정
프로젝트 앱의 apps.py에서 AppConfig을 상속받아
새로운 클래스를 만들어준다.
우리가 오버라이딩 할 함수는 ready()다.
1 2 3 4 5 6 7 8 9 10 from django.apps import AppConfig class MainAppConfig(AppConfig): name = 'main_app' def ready( self ): # print("this is Django-apps.py ready function()") from jobs import updater updater.start() Colored by Color Scripter cs
#6 project/settings.py 수정
프로젝트 디렉토리에서 settings.py를 보면 INSTALLED_APPS를
설정해준다.
mainapp.apps.MainAppConfig
위 항목을 배열에 추가해주면 모든 작업이 완료가 된다.
from http://incomeplus.tistory.com/215 by ccl(A) rewrite - 2021-11-24 13:00:35