Вопрос проверяет знание асинхронного программирования в Python, работу с asyncio и обработку ошибок при параллельных запросах.
Асинхронные запросы можно организовать с помощью библиотеки aiohttp и модуля asyncio. Запросы выполняются параллельно, что ускоряет работу. Ошибки обрабатываются через try-except или asyncio.gather с параметром return_exceptions=True.
Асинхронные запросы позволяют выполнять несколько операций ввода-вывода без блокировки потока.
Основные шаги:
Использование aiohttp
Библиотека для асинхронных HTTP-запросов.
Работает внутри async-функций.
Параллельное выполнение запросов
asyncio.gather() запускает несколько корутин одновременно.
Обработка ошибок
Можно перехватывать исключения внутри корутин.
Или использовать return_exceptions=True в gather().
Пример:
import aiohttp
import asyncio
async def fetch_data(url):
try:
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.json()
except Exception as e:
print(f"Ошибка при запросе к {url}: {e}")
return None
async def main():
urls = ["https://api1.com", "https://api2.com"]
results = await asyncio.gather(*[fetch_data(url) for url in urls], return_exceptions=True)
print(results)
asyncio.run(main())Когда использовать:
Когда нужно выполнить много запросов к API без ожидания ответа.
Для ускорения работы с медленными внешними сервисами.
Уровень
Рейтинг:
2
Сложность:
5
Навыки
Python
aiohttp
Ключевые слова
Подпишись на Python Developer в телеграм