2012-12-17 2 views
0

정기 보고서를 생성하여 사용자에게 보내고 싶습니다.장고 자동 일별, 주간 및 월간 보고서 생성

사용자는 보고서 콘텐츠 자체와 관련된 다른 정보와 함께 보내는 빈도 및 날짜/시간 (예 : 매일 9.00시, 월요일마다 월요일 등)을 선택할 수 있어야합니다.

장고에서 이것을 통합하는 좋은 방법은 무엇이라고 생각하십니까?

+1

보고서 생성기에 대해 궁금한 점이 있습니까? 아니면 보고서 생성기에서 발생하는 것입니까? –

+0

나는 장고 데이터베이스에서 작업하고보고를 시작하는 예약 된 작업을 수행하는 올바른 방법을 찾고있다. 가능하면 장고에서 관리하고 cron 스크립트로 외부에서 관리하지 마십시오. – steppo

답변

0

유닉스 시스템을 사용하는 경우 cron (유닉스 작업 스케줄러)을 사용하여 권하고 싶습니다.

당신은 django-cron, 크론 작업 스케줄링 를 래핑 장고 모듈을 사용할 수 있습니다하지만 일반적으로 작업이 django custom management command로 예약 할을 작성하고이를 호출 정기적 cron 작업을 예약합니다.

가상 파이썬 환경에 django가 설치된 경우 vitualenv를 활성화 한 다음 명령을 호출하는 스크립트를 실행해야합니다 (아래 예 참조). 유닉스 시스템에서


, VIRTUALENV 사용 :

스크립트 예제 (script.sh) : 크론의

#!/bin/bash 
source /path/to/virtualenv/bin/activate 
python /path/to/django/project/manage.py custom_command 

추가 라인 (명령 : crontab -e) :

* * * * * /path/to/script.sh >> /path/to/log/file.log 2>&1 

*를 원하는 시간과 빈도로 대체하십시오 (기본 crontab 파일의 세부 사항)

새 예약 된 작업을 설치하려면 crontab 파일을 저장하기 만하면됩니다.

+0

cron 접근법이 확실히 작동 할 수 있다고 생각하지만 조금 더 통합 된 것을 찾고 있습니다. django-cron을 살펴볼 것입니다. 셀러리에 대한 단서가 있다면, 선택의 여지가 있을까요? – steppo

+0

네, 셀러리로 그렇게 할 수 있습니다. 나는 셀러리를 사용하지 않았지만 (대부분 긴 태스크를 대기 행렬에 넣기 위해) 셀러리에는 주기적 태스크 모델이있다. http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html –

관련 문제