Быстро получить результат() из 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, но я думаю, что мои реализации должны работать так, как задумано, но я просто упускаю что-то простое...

0 ответов

Другие вопросы по тегам