2016-06-21 3 views
0

Я интегрировал API с моим сайтом Django. Для полного заказа через API существует 5 запросов и ответов, которые необходимо отправить и получить. Последние 2 запроса не являются очень важными для отправки последовательно. Я назначил эти 2 запроса на задание сельдерея.Сельдерей Задачи, не назначенные Брокером

Сценарий: Я посылаю запрос на обработку 10 заказов, поэтому каждый заказ имеет 5 запросов, из которых 2 из них назначены на задачу сельдерея. Следовательно, сельдерей имеет в общей сложности 10 задач, которые будут назначены брокером. Каждая из этих задач будет иметь 2 запроса.

Результат: Сельдерей не назначает все 10 задач при вызове API, поэтому для каждого набора из 10 заказов те, которые заполняются, являются 5 или 4 или 6 и так далее. Каждый раз, когда есть две или три задачи, которые не обрабатываются. Я не уверен, что заставляет задачу не быть назначенной брокером.

Я использую команду delay() для вызова задач. Мой 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 содержит 2 HTTP запросов, которые сделаны последовательно один за другим с ответами, сохраненные в БД ,

Пожалуйста, советы

ответ

0

заменить

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

с

process_jobs.delay(job, **response_arg) 

Если это не поможет решить проблему, то пожалуйста, поделитесь более подробно, чтобы найти решение.

+0

Уверенный, позвольте мне проверить и дадим вам знать. –

+0

любое обновление? @ user778907 –