2013-06-28 3 views
1

특히이 질문에 대해 많은 질문이 있음을 알고 있습니다 : Django - Set Up A Scheduled Job?.Django가 Cron없이 예약 된 작업을 설정하는 중

하지만 내가 알고 싶은 것은 장고 내부의 예약 된 작업이 실제로 어떻게 작동하나요? 이 무한 루프를 배치해야합니까 : 그것에 대해 생각하는

내 단순한 방법은

import time 
interval=60 #60 seconds 
while True: 
    some_method() 
    time.sleep(interval) 

, 무한 루프가, 어딘가에 이런 식으로 뭔가를 (60 초마다 실행)이 있다는 질문입니까? 거기에 일부 애플 리케이션의 나머지 부분과 함께 백그라운드에서 실행되는 장고 애플 리케이션의 일부가 있습니까?

감사합니다.

답변

1

장고는 예약 된 작업을 수행하지 않습니다. 예약 된 작업을 원하면 항상 실행되는 데몬이 필요하며 적절한 시간에 작업을 시작할 수 있습니다.

장고는 http 요청이있을 때만 실행됩니다. 아무도 한 달 동안 http 요청을하지 않으면 django는 한 달 동안 실행되지 않습니다. 이 초당 45 개의 HTTP 요청이있을 경우, django는 (캐시가없는 경우) 초당 45 번 실행됩니다.

일부 외부 서비스 (cron과 같은)에서 호출되는 django 프레임 워크 (관리 명령이라고 함)에 스크립트를 작성할 수 있습니다. 그것은 당신이 원하는 것에 다가 갈 수있는만큼 가깝습니다. 그렇다면 참조하는 질문/답변이 방법을 얻는 곳입니다.

아마도 unixy 시스템에서 cron은 아마도 가장 간단한 외부 서비스입니다. 최근의 리눅스 시스템에서, cron은 /etc/cron.d 디렉토리를 가지고 있습니다.이 디렉토리에 앱의 cron 설정 파일을 놓을 수 있으며, 시스템상의 다른 cron 작업을 방해하지 않습니다. 기존 파일을 편집 할 필요가 없습니다.

관련 문제