Как сделать асинхронную задачу в Django? - PullRequest
0 голосов
/ 18 мая 2019

Предположим, мне нужно запросить несколько серверов для ответа

def view_or_viewset(request):

  d1 = request_a_server() # something like requests.get(url, data)
  d2 = request_b_server()
  d3 = request_c_server()

  d4 = do_something_with(d3)

  return Response({"foo1": d1, "foo2": d2, "foo3": d3, "foo4": d4})

Я выполняю синхронные запросы для каждого запроса, и я предполагаю, что должен быть лучший способ обработки такого сценария ..

(я бы использовал сельдерей, если это длинная задача, но это не так, выполнение нескольких синхронных запросов кажется неправильным)

Какая рекомендуемая парадигма (?) Для обработки этого?

  • edit

Я ожидал использования async или aioHttp и yield (?)

, и мой вопрос был помечен каквозможные дубликаты и ответы там предлагают использовать многопоточность. Я думаю, что ручной обработки многопоточности следует избегать (из моего прошлого опыта с многопоточностью в c ++)

, тогда я обнаружил https://stackoverflow.com/a/23902034/433570 request-future кажетсябыть многообещающим здесь ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...