2013-03-14 2 views
0

Django와 Celery를 처음으로 장고 셀러리를 추출합니다. 다음은 장고 셀러리 최대 재귀 깊이 초과

내가 지금까지/연락처 /에 ... 나는 다음과 같은 오류가

RuntimeError에 노력 최대 재귀 깊이가 나는 SQS와 메시지 브로커를 사용하고

을 초과 업로드 한 것입니다 .

settings.py

# Celery 

import djcelery 
djcelery.setup_loader() 

INSTALLED_APPS += (
    'south', 
    'userena', 
    'social_auth', 
    'djcelery', 


) 

BROKER_TRANSPORT = 'sqs' 
BROKER_TRANSPORT_OPTIONS = { 
    'region': 'eu-west-1', 
    } 
BROKER_USER = 'xyz' 
BROKER_PASSWORD = 'zyx' 

tasks.py 누가 좀 도와주세요 수

@task 
def upload(request, **kwargs): 
    file = request.FILES['file'] 
    ContactCSVModel.import_from_file(file) 
    return True 

view.py

@login_required 
def upload(request): 

      result = upload(request) 
      if result: 
       messages.add_message(request, messages.SUCCESS, 'Items have been added to the database.') 
     else: 

     etc 

내가 여기서 뭘 잘못하고 있는지 이해해. 고맙습니다.

답변

1

귀하의 작업과보기는 정확히 같은 것으로입니다.

그래서 당신은이 작업을 수행 할 때 당신은 당신의 작업을 호출하지 않을

result = upload(request) 

, 당신이 기대하는 생각으로, 다시보기 함수를 호출하고 있습니다. 그리고 다시. 그리고 다시. 그리고 다시.

는에 DEF보기를 변경해보십시오 :

def upload_file(request): 

이 문제를 해결해야한다.

업로드라고보기 및 작업 업로드 내부보기, 이름이 같은 경우
@task 
def upload_task(): 
    ... 

def upload(request): 
    result = upload_task(request) 

가, 업로드 업로드 뷰 자체입니다 :

+0

O !!!!! 바보 같았 어! 네가 옳은 잭이야. 고맙습니다. – jason

1

은 작업의 이름을 변경합니다.

관련 문제