Предположим, мне нужно запросить несколько серверов для ответа
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})
Я выполняю синхронные запросы для каждого запроса, и я предполагаю, что должен быть лучший способ обработки такого сценария ..
(я бы использовал сельдерей, если это длинная задача, но это не так, выполнение нескольких синхронных запросов кажется неправильным)
Какая рекомендуемая парадигма (?) Для обработки этого?
Я ожидал использования async
или aioHttp
и yield
(?)
, и мой вопрос был помечен каквозможные дубликаты и ответы там предлагают использовать многопоточность. Я думаю, что ручной обработки многопоточности следует избегать (из моего прошлого опыта с многопоточностью в c ++)
, тогда я обнаружил https://stackoverflow.com/a/23902034/433570 request-future кажетсябыть многообещающим здесь ..