훈훈훈

파이썬(Django) :: Django-Crontab 정리 본문

파이썬/Django

파이썬(Django) :: Django-Crontab 정리

훈훈훈 2020. 4. 18. 16:24

이번에는 Django를 사용하여 crontab을 사용하는 방법에 대하여 정리하려고 한다.

 

crontab을 사용하게된 계기는 매 특정 주기마다 가격이 변동시키고 싶어서 적용해보게 되었다.

 

이제 Django에서 crontab을 사용하는 방법에 대하여 알아보자

 

# 모듈 설치

pip install django-crontab

먼저 pip로 "django-crontab" 모듈을 설치하자

설치가 되면 아래와 같이 settings.py에 INSTALLED_APPS에 추가해주면 사용할 수 있다.

 

# settings.py

INSTALLED_APPS = [

    'django_crontab',
]

# 매 3시간 마다 cron.py 실행
CRONJOBS = [
    ('0 */3 * * *',  'my_cron.schedule_03hr_change_price', '>> 03hr_schedule.log'),
]

INSTALLED_APPS에 'django-crontab'을 추가하였다면, 이제 CRONJOBS을 등록할 수 있다.

 

원하는 경로나 파일에 주기적으로 실행되길 원하는 함수를 생성 후 위와 같이 추가 해주면 된다.

필자는 추가적으로 cron이 실행될때마다 로그를 남기기 위해서 "03hr_schedule.log" 파일을 생성하였다.

 

# my_cron.py

def schedule_03hr_change_price():
	print("log")

추가적으로 주기적으로 실행시킬 함수는 위와 같이 예시로 작성할 수 있다.

필자는 my_cron.py 파일을 생성 후 해당 파일에 작성하였다.

 

# cron 명령어

python manage.py cron add
python manage.py cron show
python manage.py cron remove

마지막으로 서버를 실행 후 위와 같은 명령어로 추가(add), 보기(show) 삭제(remove)가 가능하다.

Comments