Programação Assíncrona
Programação assíncrona em Python com async/await pode melhorar significativamente a performance de aplicações I/O-bound.
Função Assíncrona Básica
import asyncio
import aiohttp
async def fetch_data(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.json()
# Executar
data = await fetch_data('https://api.example.com/data')Múltiplas Requisições
async def fetch_multiple(urls):
tasks = [fetch_data(url) for url in urls]
results = await asyncio.gather(*tasks)
return results
# Mais eficiente que fazer sequencialmente
urls = ['https://api.example.com/1',
'https://api.example.com/2']
results = await fetch_multiple(urls)Com FastAPI
from fastapi import FastAPI
import httpx
app = FastAPI()
@app.get("/external-data")
async def get_external_data():
async with httpx.AsyncClient() as client:
response = await client.get("https://api.example.com/data")
return response.json()
1 comment