Django crontab

Happy_JG·2024년 4월 5일
0

Django

목록 보기
28/32

django-crontab

Django 애플리케이션의 작업 스케줄링을 위한 django-crontab

시간 관리와 작업 스케줄링은 모든 웹 애플리케이션의 핵심적인 부분으로, Django 애플리케이션에서 이러한 작업을 효율적으로 관리하기 위해 django-crontab이라는 라이브러리를 이용할 수 있다. django-crontab은 Django 프로젝트에서 주기적인 작업을 예약하고 실행하는 데 사용되며, 이를 통해 우리는 애플리케이션의 자동화된 작업 흐름을 만들 수 있다.

django-crontab을 사용하는 방법은 매우 간단하다. settings.py 파일에 CRONJOBS 변수를 정의하고 실행할 작업과 실행 주기를 설정하기만 하면 된다. 이러한 작업은 웹 애플리케이션을 보다 효율적으로 운영할 수 있도록 도와준다.

django-crontab은 분명 강력한 라이브러리이다. 그렇다면 django-crontab을 매번 이용할까? 그렇지 않다. 간단한 작업 스케줄링에는 유용하지만, 대규모 및 복잡한 작업 스케줄링에 적용은 고려를 해봐야한다. 또한 Django에서 공식적으로 지원하지 않는 라이브러리이기 때문에 다양한 시각에서 바라볼 필요가 있다고 생각한다.


설치

pip install django-crontab

등록

INSTALLED_APPS = [
	.
	'django_crontab'
	'django.contrib.admin'
	.
	.
]
.
.
.
CRONJOBS = [
	('크론 표현식','앱명.파이썬파일명.메서드명 >> /로그파일명'),
    ('* * * * *', 'crawling.practice.output >> /logfile.log 2>&1')
	.
	.
    .
]

CRONJOBS는 settings.py하단에 작성하자.

크론 표현식

크론 표현식은 다음과 같다.

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +-- 요일 (0 - 6) (0은 일요일)
|    |    |    +-----(1 - 12)
|    |    +--------(1 - 31)
|    +-----------(0 - 23)
+--------------(0 - 59)

매월 1일 오전 1시 30분이라고 가정 한다면, 30 1 1 * *로 표현한다.

로그 파일

>> /logfile.log 2>&1'

이 코드는 root 디렉토리의 logfile.log라는 파일에 표준 출력과 오류 출력을 기록하도록 한다.

실행

python manage.py crontab add

Window환경이라 crontab을 추가하는 데 실패했다. 하지만 클라우드를 통해 배포할 것이니 괜찮을 것...이다...

python manage.py crontab run

profile
hello!

0개의 댓글