2012-03-11 4 views
1

현재 프로젝트를 진행 중입니다. 비동기 작업 처리는 물론 일종의 메시지 대기열을 일찍 통합하여 초기 단계에서 간단하게 확장 할 수 있습니다. 메시지 큐 프로세서 서버를 클러스터에 추가합니다.장고에서 셀러 리 시작하기

나는 Celery을 우연히 발견하고 내 눈을 사로 잡았습니다. 장고와 꽤 잘 통합되어 있기 때문에, 나는 꽤 잘 지원받을 것이라고 생각했다. 나는 많은 구성이 포함되어 있기 때문에 어떻게 시작해야할지 모르겠습니다.

가능한 경우 django runserver과 함께 실행되는 메시징 대기열을 갖기 위해 장고 프로젝트 (정적 파일, 파이프 라인 등)에 대한 모든 것을 실행하고 있습니다. (걱정하지 말라. 이것은 개발 용으로 만 사용된다.) 기존 Django 프로젝트에서 Celery를 사용하려면 어떻게해야합니까?

+0

https://github.com/ask/django-celery가 도움이 될 수 있습니다. 또한 http://django-celery.readthedocs.org/en/latest/getting-started/first-steps-with-django.html –

답변

1

셀러리는 those getting started을 위해도, 아주 좋은 문서를 가지고 있지만, 가치가 두 가지 사실은 초보자를위한 언급되고 다음 BROKER_BACKEND

  • 사용 djkombu을. 이렇게하면 모든 메시지가 django가 사용하는 SQL 데이터베이스에 저장되는 개발 용 메시지 대기열이 생깁니다. 때문에 셀러리의 API에 쉽게 생산을 위해 "진짜"메시지 큐로 교체 할 수 있습니다 :

    BROKER_TRANSPORT = "kombu.transport.django"

  • 장고 - 셀러리는 설정 CELERY_ALWAYS_EAGER 있습니다. True으로 설정하면 비동기 백그라운드 처리가 수행되지 않으므로 셀러리를 통해 호출되는 모든 작업이 동 기적으로 실행됩니다 (추가로 셀러리 작업자를 시작할 필요가 없기 때문에 디버깅에도 매우 유용합니다).

+1

아쉽게도 셀러리 라이브러리에서 많은 변화가있었습니다. 새로운 API로 작업 할 수있는 답을 편집 할 수 있습니까? 올바른 앱을 설치하는 것 외에 내 장고 앱에서 직접 메시징 큐를 실행하려면 어떻게해야합니까? 이제는 차단할 수 있습니다. 중요한 것은 내 응용 프로그램을 사용하여 마이그레이션 할 수 있다는 것입니다. 그래서 나는 "미래 보장"되어 있습니다. –

+1

예 : djkombu는 더 이상 사용되지 않으며 BROKER_BACKEND는 BROKER_TRANSPORT가됩니다. –

3

djkombu 지금은 사용되지 않습니다, 장고 전송 이제 직접 kombu 패키지에 통합되어 있습니다.

은 장고 settings.py에 백엔드를 정의하는 경우, 당신은 사용할 수 있습니다

BROKER_BACKEND = "django" 

당신은 다시마 here에서 서로 다른 전송 별칭을 찾을 수 있습니다.

이 결과는 django-celery 2.5.5, celery 2.5.3 및 kombu 2.1.8으로 테스트되었습니다.