Django-crontab 적용하기

 

 

  django-crontab으로 특정한 모듈을 주기적으로 실행하는 것이 가능합니다. 물론 직접 crontab에 잘 작성하는 것도 방법이겠지만 라이브러리로 어느정도 간단하게 관리가 가능하니까 사용하는 것이 좋을 것 같습니다.

 

  설치는 pip install django-crontab 

 

  settings.py에 아래와 같은 내용을 포함해줍니다. 

INSTALLED_APPS = [
    ...
    ...
    'django-crontab',
]

...
...

CRONJOBS = [
   ('* * * * *', 'app_name.file_name.def_name',  '>> /log_path/log_file.log')
]

 

  INSTALLED_APPS는 당연한거니까 PASS !

  CRONJOBS에 적절히 추가해주면 되는데 crontab 작성하시는 것과 동일하게 반복 주기를 설정하실 수 있습니다. 

  2번째 인자로 주기적으로 실행할 모듈을 작성하면 되는데 위에 적은 것을 그대로 풀어서 쓰면됩니다. 

 

  예로 aaa라는 앱에 views.py에 bbb 함수를 실행하는 것이라면 

  aaa.views.bbb 로 작성하시면 됩니다. 

 

  3번째 인자는 로그 기록인데 아예 빼버려도 작동합니다. 로그는 권한 설정이 잘되어 있는지 확인하시고 추가하시면 되고요.

 

  django-crontab은 윈도우에서는 작동하지 않습니다. 코드만 배포하면 되는 것은 아니고 아래와 같은 명령어로 cronjob을 crontab에 기록해야 합니다. 

 

  python manage.py crontab add    #당연히 추가하는 것이겠죠? cronjobs에 입력된 것들을 crontab에 기록해줍니다. 

  python manage.py crontab remove #cronjobs에 입력된 것들을 crontab에서 삭제합니다. 

  python manage.py crontab show #현재 적용된 것들을 프린트합니다.

 

 

+ Recent posts