RabbitMQ가있는 셀러리 : AttributeError : 'DisabledBackend'개체에 '_get_task_meta_for'속성이 없습니다.
Celery Tutorial을 사용 하여 첫 단계를 실행하고 있습니다.
다음 작업을 정의합니다.
from celery import Celery
app = Celery('tasks', broker='amqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
그런 다음 호출하십시오.
>>> from tasks import add
>>> add.delay(4, 4)
하지만 다음과 같은 오류가 발생합니다.
AttributeError: 'DisabledBackend' object has no attribute '_get_task_meta_for'
셀러리 작업자와 rabbit-mq 서버를 모두 실행하고 있습니다. 오히려 이상하게도 셀러리 작업자는 작업이 성공했다고보고합니다.
[2014-04-22 19:12:03,608: INFO/MainProcess] Task test_celery.add[168c7d96-e41a-41c9-80f5-50b24dcaff73] succeeded in 0.000435483998444s: 19
왜 작동하지 않습니까?
튜토리얼을 계속 읽으십시오. 결과 유지 장 에서 설명 합니다.
Celery를 시작하려면 작업에 대한 메시지를 보내는 데 필요한 브로커 매개 변수 만 제공하면됩니다. 완료된 작업에서 반환 된 상태 및 결과에 대한 정보를 검색하려면 백엔드 매개 변수를 설정해야합니다. 구성 문서 CELERY_RESULT_BACKEND 에서 설명과 함께 전체 목록을 찾을 수 있습니다 .
http://www.cnblogs.com/fangwenyu/p/3625830.html을 살펴 보는 것이 좋습니다 .
대신에
app = Celery('tasks', broker='amqp://guest@localhost//')
당신은 쓰고 있어야합니다
app = Celery('tasks', backend='amqp', broker='amqp://guest@localhost//')
이거 야.
누군가가 저처럼 실수하기 쉽게 만들었을 경우 : 튜토리얼은 그렇게 명시 적으로 말하지 않지만
app = Celery('tasks', backend='rpc://', broker='amqp://')
tasks.py
파일 에있는 행의 편집입니다 . 광산은 이제 다음과 같이 읽습니다.
app = Celery('tasks', backend='rpc://', broker='amqp://guest@localhost//')
명령 줄에서 파이썬을 실행하면 다음과 같은 결과가 나타납니다.
$ python
>>> from tasks import add
>>> result = add.delay(4,50)
>>> result.ready()
>>> False
모든 튜토리얼은 조금 취했을 때도 따라하기 쉬워야합니다. 지금까지는이 기준에 도달하지 못했습니다.
프로젝트 디렉토리에서 설정 파일을 찾으십시오.
그런 다음 : sudo vim settings.py 복사 / 붙여 넣기 settings.py : CELERY_RESULT_BACKEND = 'djcelery.backends.database : DatabaseBackend'
참고 : 큐에 메시지를 저장하기위한 백엔드로 django-celery를 사용하는 경우입니다.
튜토리얼에서 명확하지 않은 것은 tasks.py 모듈을 편집하여 줄을 변경해야한다는 것입니다.
app = Celery('tasks', broker='pyamqp://guest@localhost//')
RPC 결과 백엔드를 포함하려면 :
app = Celery('tasks', backend='rpc://', broker='pyamqp://')
완료되면 Ctrl + C셀러리 작업자가 처리하고 다시 시작합니다.
celery -A tasks worker --loglevel=info
이 튜토리얼은 앱 객체 생성이 클라이언트 테스트 세션에서 이루어 졌다고 가정하고 있다는 점에서 혼란 스럽습니다.
'program tip' 카테고리의 다른 글
Angular JS : REST / CRUD 백엔드 용 GET / POST / DELETE / PUT 클라이언트의 전체 예제? (0) | 2020.12.24 |
---|---|
3 열에서 오른쪽으로 당기기, 왼쪽으로 당기기로 부트 스트랩 변경 div 순서 (0) | 2020.12.24 |
IntelliJ가 sbt 프로젝트를 가져올 수 없음 (0) | 2020.12.24 |
클라이언트 측 자바 스크립트 시계를 서버 날짜와 동기화하는 가장 좋은 방법 (0) | 2020.12.24 |
C의 EOF (파일 끝) (0) | 2020.12.24 |