2016-06-21 11 views
0

내 장고 웹 사이트에 API를 통합했습니다. API를 통한 전체 주문에는 송수신해야하는 5 가지 요청 및 응답이 있습니다. 마지막 두 요청은 순차적으로 발송하는 것이 중요하지 않습니다. 셀로우 작업에이 두 요청을 할당했습니다.브로커가 샐러리 작업을 지정하지 않습니다.

시나리오 : 10 개의 주문을 처리하라는 요청을 보내므로 각 주문에 5 개의 요청이 있고 그 중 2 개가 셀러리 작업에 할당됩니다. 따라서 셀러리에는 브로커가 배정하는 총 10 가지 작업이 있습니다. 각각의 작업에는 2 개의 요청이 있습니다.

결과 : API 호출이 진행되는 동안 셀러리에는 10 개의 태스크가 모두 할당되지 않으므로 완료되는 10 개 세트 각각에 대해 5 또는 4 또는 6 등이됩니다. 매번 처리되지 않는 2 ~ 3 개의 작업이 있습니다. 나는 무엇이 업무를 중개인에 의해 할당되지 않게하는지 확신하지 못한다.

지연() 명령을 사용하여 작업을 호출하고 있습니다. 내 task.py 파일이 작업이

from celery import shared_task 
from celery.utils.log import get_task_logger 

logger = get_task_logger(__name__) 


@shared_task 
def process_jobs(client_obj, job, **kwargs): 

    # do task related work 

호출처럼 약간 보이는 것은이

process_jobs.delay(self, job, **response_arg) 

process_jobs처럼 보인다는 DB에 저장 응답과 다른 후 순차적으로 하나를 만들어 2 개 HTTP 요청을 포함 . 이 방법으로 문제가 해결되지 않으면

답변

0

process_jobs.delay(job, **response_arg) 

process_jobs.delay(self, job, **response_arg) 

을 대체 조언을 주시기 바랍니다, 다음 해결책을 찾기 위해 자세한 내용을 공유하시기 바랍니다.

+0

확실히 확인해 드리겠습니다. –

+0

어떤 업데이트가 있습니까? @ user778907 –

관련 문제