django-crontab

김혁준·2023년 6월 14일
0

django

목록 보기
8/18

Django Crontab
crontab은 서버 내의 특정 작업(또는 명령)을 특정 주기로 스스로 실행하도록 하는 것을 뜻한다.

django-crontab 설치

poetry add django-crontab

django-crontab setting
설치 후에는 settings.py 의 INSTALLED_APPS에 해당 모듈을 추가해준다.

INSTALLED_APPS = (
    'django_crontab', 
    . . .
)

cronjob 추가
자신의 앱 안에 cron.py파일을 만든 후, 스케줄 작업을 등록하기 위한 함수를 만들어준다. (함수의 위치는 상관 없음)

myapp/cron.py :


def crontab_job():
    . . .

settings.py에 crontab 작업 등록

CRONJOBS = [
    ('*/5 * * * *', 'app.cron.crontab_job')
]

첫번째 인자로 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6)(0:일요일, 1:월요일, 2:화요일, …, 6:토요일) 순으로 각 작업이 실행될 때를 입력한 후, 두번째 인자로는 app이름.file이름.function이름을 입력해준다.

CRONJOBS = [
    ('59 23 * * 0', 'planets.cron.delete_planet'),
    ('0 0 * * 1', 'planets.cron.create_planet'),
]

crontab 명령어
이렇게 크론탭 작업을 추가하고 설정까지 마쳤다면 서버에서 crontab 작업들을 처리해줘야한다. add를 수행하면 settings.py에 명시해준 작업들을 시작한다.

$ python manage.py crontab add # 등록된 job들을 모두 실행
$ python manage.py crontab remove # 등록된 job들을 모두 제거
$ python manage.py crontab show # 등록된 job들을 모두 보기

cron-tab으로 is_active=False인 유저들을 삭제해봐야겠다!

profile
스프링 개발자 지망생입니다

0개의 댓글