본문 바로가기

문돌이 존버/Django 스터디

장고 크론탭(django crontab) 사용해보기

반응형

크론탭은 시간을 정해서 특정 프로그램을 자동으로 동작하게 하는 기능입니다. 리눅스 환경에서만 사용할 수 있으며 윈도우는 따로 시간 설정이 있는 것으로 보입니다.

오늘은 그중에서도 장고에서 크론탭을 활용하는 방법을 살펴보려고 합니다. 결국 크론탭을 이용하는 것이지만 장고 파일 내에서 설정할 수 있도록 모듈을 제공하는 것이죠. 먼저 아래 명령어로 모듈을 설치합니다.

pip install django-crontab

settings.py 에 아래 내용을 추가합니다. 

# settings.py
INSTALLED_APPS = (
    'django_crontab',
)

CRONJOBS = [
    ('* * * * *', 'appname.filename.functionname', '>> /appname/crontap.log'),
]

위에서 CRONJOBS를 보시면 '* * * * *' 가 보이실 것입니다. 이는 시간을 설정하는 것이며, 내용은 아래와 같습니다.(제타위키를 참고했습니다)

*   *   *   *  *       
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───────── 요일 (0 - 6) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일)
│ │ │ └───────── 월 (1 - 12)
│ │ └───────── 일 (1 - 31)
│ └───────── 시 (0 - 23)
└───────── 분 (0 - 59)

아래는 예시입니다. 

* * * * * : 매분 프로그램 실행
30 1-23/6 * * * : 1시부터 매 6시간마다 단, 30분(1:30, 7:30, 13:30, 19:30)에 프로그램이 실행
*/10 * * * * : 10분마다 프로그램 실행
15,45 * * * * : 매시 15분, 45분에 프로그램 실행
0 8 * * 1-5 : 평일 8:00에 프로그램 실행

마지막으로 터미널에서 아래 명령어를 입력하면 됩니다. 

# 크론탭 내용 추가
python manage.py crontab add 
# 크론탭 내용 보기
python manage.py crontab show 
# 크론탭 내용 삭제
python manage.py crontab remove

 

728x90
반응형