import asyncio
import time
from typing import List
async def fetch_data(url: str) -> str:
"""Имитация асинхронного запроса к API."""
print(f"🔄 Запрос к {url}...")
await asyncio.sleep(1) # имитация сети
return f"Данные с {url} получены!"
async def main() -> None:
"""Запускает несколько асинхронных задач параллельно."""
urls = [
"https://api.example.com/users",
"https://api.example.com/posts",
"https://api.example.com/comments",
"https://api.example.com/products"
]
start = time.time()
# gather запускает все задачи одновременно
results = await asyncio.gather(*[fetch_data(url) for url in urls])
print(f"\n✅ Получено {len(results)} ответов за {time.time() - start:.2f} сек")
for result in results:
print(f" • {result}")
if __name__ == "__main__":
try:
asyncio.run(main())
except Exception as e:
print(f"Ошибка: {e}")
📌 asyncio + await/gather позволяют писать неблокирующий код, который одновременно обрабатывает тысячи запросов, файлов или задач. Это основа современных высоконагруженных сервисов, ботов и веб-приложений на FastAPI/Starlette.
Подпишись 👉🏻 @KodduuPython 🤖