2017-05-12 3 views
2

Django 1.8 + Celery 4.0.2를 실행 중입니다. 셀러리가 올바르게 구성되었으며 redis 백엔드에서 내 장고 작업을 로컬로 실행할 수 있습니다. 그러나 CELERY_ALWAYS_EAGER = True 설정을 사용하려고 시도하면 이 설정이 적용되지 않습니다. 다른 설정 (예 : 셀러리가 CELERY_ALWAYS_EAGER 설정을 선택하지 않음

특히 CELERY_TIMEZONE

, PDB에 그 app.conf.task_always_eager 그래서 어떻게 든 CELERY_ALWAYS_EAGER이 포착되지 않는 거짓 lib 디렉토리/python2.7/사이트 패키지/셀러리/응용 프로그램/task.py (520) apply_async() 입니다 참조 위 PDB에서 app.conf.task_always_eager

더 많은 정보에 아무런 영향이 없습니다 :

> app.conf.get('CELERY_ALWAYS_EAGER') 
> True 
> app.conf.task_always_eager 
> False 

은 무엇이 발생할 수 있습니다를? 나는 Celery 4.x가 오래된 설정 이름에서 새로운 설정 이름으로 바뀌 었음을 알고 있지만 여전히 오래된 설정 이름을 여전히 사용하도록 약속한다.

+0

'proj/proj/__ init __. py' 파일에'.celery import app from celery_app'을 넣었습니까? –

답변

5

CELERY_ALWAYS_EAGER은 버전 4.0 이상에서는 CELERY_TASK_ALWAYS_EAGER으로 이름이 변경되었습니다.

보다 정확하게 말해, 셀프 응용 프로그램 개체를 직접 구성하기 위해 모든 대문자 설정이 더 이상 사용되지 않으며 일부는 접두사로 task_ 또는 worker_을 사용하도록 네임 스페이스가 지정되었습니다. 모든 대문자 설정과의 후방 호환성이 있기 때문에 간접적으로 대문자 설정의 이름이 바뀌 었습니다. changelog에서

:

celery_ 접두사도 제거되었으며,이 이름 공간에서 작업 관련 설정이 이제 worker_와 task_, 노동자 관련 설정 접두어된다.

0

settings.py에서 CELERY_ALWAYS_EAGER = True로 설정 한 후 셀러리 작업자를 다시 시작하고 도움이되는지 확인하십시오.

+0

나는 작업자를 실행하지 않는 이벤트이다. 장고 runserver를 실행 (재시작)하고 그 안에 셀리 작업이 실행될 것으로 예상한다. – AlexA

+0

죄송합니다. 귀하의 의견을받지 못했습니다. 셀러리를 어떻게 운영하여 운영하고 있습니까? 상사를 통해 관리하고 있습니까? 이 명령을 실행 했습니까 ** 셀러리 작업자 -A yourapp --loglevel = INFO ** 셀러리 또는 다른 것을 시작하려면 –

+0

셀러리 작업자 - yourapp --loglevel = INFO를 성공적으로 실행할 수 있으며 작업을 수신합니다. 이제는 다른 목표를 가지고 있습니다. 다른 개발자가 Django 및 셀러리없이 작업을 수행 할 수있게 도와 주므로 Django 프로세스 내에서 즉시 작업이 실행됩니다. 예를 들어, 이것은 디버깅 작업에 도움이됩니다. – AlexA

관련 문제