2011-08-18 5 views
0

밖으로 셀러리 result.get 시간이 projAprojB는 각각 자신의 셀러리 데몬이 별도의 큐하지만 같은 가상 호스트에서 실행이 말의 proja이 작업 taskA을 가지고 projB가 작업 taskB을 가지고, 내가 실행하려고 taskB 내부에서 taskA 예 :나는 두 개의 서로 다른 장고 프로젝트를

@task(routing_key='taskA') 
def taskA(event_id): 
    # do some work , then call taskB and wait for result 
    result = send_task('taskB',routing_key='taskB') 
    res = result.get(timeout=20) 

나는 taskB은 초 이내에 완료되었는지 projB의 로그에서 볼 수 있지만, taskA는 20초 백엔드

내가 rabbitmq이 후에 결과와 시간을 기다리고에 유지합니다.

+0

이 경고는 하위 작업 시작에 대해 경고하지만 taskB가 완료되면 문제의 원인이 아닐 수 있습니다. http://ask.github.com/celery/userguide/tasks.html#task- 동기 하위 작업 – SteveMc

+0

그렇습니다. 가능한 교착 상태에 대한 경고입니다.하지만 각 대기열에 대해 7 개의 동시 프로세스가 있으며, 단지 하나의 작업 만 발생하면 안됩니다. –

답변

1

결과를 설정 백엔드 결과 백 엔드가 result.get이 오류가 발생한다 설정되지 않은 경우

CELERY_RESULT_BACKEND = "amqp" 
CELERY_AMQP_TASK_RESULT_EXPIRES = 1000 

IMO 문제를 해결하거나-적어도 경고를 기록

셀러리 2.3 않지만 여기에 설명 된대로 오류를 던지십시오. https://github.com/ask/django-celery/issues/66