작업을 수행 할 작업, 배포해야하는 경우 및 관리 방법에 따라 다릅니다.
crontab은 N 간격마다 스크립트를 실행할 수 있습니다. 실행 한 다음 돌아옵니다. 기본적으로 각 간격마다 단일 실행을 얻습니다. crontab에 django 관리 명령을 실행하고 전체 django 환경에 액세스하도록 지시 할 수 있으므로 celery는 실제로 도움이되지 않습니다.
셀러리가 메시지 대기열의 도움으로 테이블에 가져 오는 것은 분산 작업입니다. 많은 서버가 작업자 풀에 참여할 수 있으며 각 서버는 이중 처리에 대한 두려움없이 작업 항목을받습니다. 준비가되는 즉시 작업을 실행할 수도 있습니다. cron을 사용하면 최소 1 분으로 제한됩니다.
예를 들어, 방금 새 웹 애플리케이션을 시작했고 각 사용자에게 이메일을 보내야하는 수백 개의 등록을 수신한다고 가정 해보십시오. 이메일 전송은 (비교적으로) 시간이 오래 걸릴 수 있으므로 작업을 통해 활성화 이메일을 처리하기로 결정합니다.
크론을 사용하고 있었다면 1 분마다 크론이 전송해야하는 모든 이메일을 처리 할 수 있는지 확인해야합니다. 서버가 여러 개인 경우 동일한 사용자에게 여러 활성화 이메일을 보내지 않는지 확인해야합니다. 일종의 동기화가 필요합니다.
셀러리를 사용하면 대기열에 작업을 추가합니다. 서버 당 여러 작업자가있을 수 있으므로 cronjob보다 앞서 이미 확장했습니다. 더 많은 확장이 가능한 여러 서버가있을 수도 있습니다. 동기화는 '대기열'의 일부로 처리됩니다.
당신은 할 수 크론 대체 셀러리를 사용하지만 정말 그 차를 사용하지 않습니다. 분산 클러스터에서 비동기 작업을 수행하는 데 사용됩니다.
물론 셀러리는 크론이 제공하지 않는 많은 기능 을 가지고 있습니다.