Самые быстрые параллельные запросы в PythonPython

Программы на Python
Anonymous
Самые быстрые параллельные запросы в Python

Сообщение Anonymous »

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

Решение и проблемы, которые я нашел, были следующими:
  • Асинхронность с использованием Asyncio: я не хочу полагаться на один поток , по какой-то причине он может зависнуть.
  • Темы: действительно ли в Python надежно использовать потоки? Есть ли у меня риск того, что один поток заставит

    другой застрять?
  • Многопроцессы: если один процесс контролирует другие, я
    потерю слишком много времени на межпроцессное взаимодействие?
Может быть, решение использует все это.

Если на Python нет действительно хорошего решения, что мне использовать вместо него?

# Using Asyncio
import asyncio
import requests

async def main():
loop = asyncio.get_event_loop()
future1 = loop.run_in_executor(None, requests.get, 'http://www.google.com')
future2 = loop.run_in_executor(None, requests.get, 'http://www.google.co.uk')
response1 = await future1
response2 = await future2
print(response1.text)
print(response2.text)

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

# Using Threads
from threading import Thread

def do_api(url):
#...
#...

#...
#...
for i in range(50):
t = Thread(target=do_apis, args=(url_api,))
t.start()


Подробнее здесь: https://stackoverflow.com/questions/571 ... -in-python

Вернуться в «Python»