Расширенные запросы и классы с asyncio - PullRequest
0 голосов
/ 27 сентября 2019

Недавно я перечитывал и изучал лучшие варианты потоков моей программы.Программа импортирует созданную мной библиотеку, которая состоит из нескольких классов, каждый из которых содержит свои собственные соответствующие сеансы запросов и заголовки, различный набор запросов и т. Д. После проведенного исследования я обнаружил лишь примеры, в которых люди используют один сеанс, илине выполняет несколько запросов POST и GET или использует устаревшие версии модулей.Как я могу использовать asyncio для одновременной работы сотен этих объектов, выполняющих запросы POST и GET?

Я не прошу написать для меня код, просто простое место для начала илинекоторые понятия, с которыми я должен ознакомиться.Потоковое / асинхронное программирование невероятно трудоемко.Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2019

request-futures (https://pypi.org/project/requests-futures/) очень легко реализовать асинхронное программирование в python 3.x.

Например:

from requests_futures.sessions import FuturesSession

def async_calls(list_of_urls):
    """Returns future objects for each url."""
    futures = []
    session = FuturesSession()
    for url in list_of_urls:
        scan_id, history_id, host_id, creation_date = host
        task = session.get(url)
        futures.append((task, ip_query_params))
    return futures

== В вызывающей функции:

futures = async_calls(urls)
results = [f.result() for f in futures]

Надеюсь, это поможет.

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