Быстро получить результат() из request.futures
У меня есть длинный список URL-адресов (несколько тысяч), которые я получаю с помощью FuturesSession. Этот процесс очень быстрый, пока я не дойду до точки, где мне нужен результат FutureSession, т.е. проблема возникает, когда я добавляю к:
URLS=[url1,url2,...,urln]
adapter = HTTPAdapter(max_retries=retry)
with sessions.FuturesSession() as session:
for url in URLS:
resp = session.get(URLS,headers=headers)
futures.append(resp)
#data.append(resp.result())
Я попытался использовать concurrent.futures, чтобы ускорить назначение
data
что увеличивает скорость, но все еще относительно медленно (0,5 с на придаток вместо 1-2 с)
futures=[<Future at 0x0 state=finished>,...,n]
with concurrent.futures.ThreadPoolExecutor() as e:
fut = [e.submit(func, i) for i in futures]
for r in concurrent.futures.as_completed(fut):
data3.append(r.result())
Кажется, я не могу понять, как быстро получить результат из фьючерсов, но наверняка должно быть какое-то решение.
Я не знаю, полностью ли я понимаю FutureSession и concurrent.future, но я думаю, что мои реализации должны работать так, как задумано, но я просто упускаю что-то простое...