Modèles asynchrones Python

Async en Python est un gâchis si vous ne savez pas ce que vous faites. Voici mes expériences après avoir débogué beaucoup trop de conditions de course.

Problème 1 : Bloquer les appels en code asynchrone

C’est une erreur classique que tout le monde commet :

async def fetch_data():
    # FORKERT - requests blokerer hele event loopen!
    response = requests.get("https://api.example.com")
    return response.json()

Utilisez plutôt aiohttp ou httpx :

async def fetch_data():
    async with aiohttp.ClientSession() as session:
        async with session.get("https://api.example.com") as resp:
            return await resp.json()

Problème 2 : Oublier d'attendre

# Dette returnerer en coroutine, ikke resultatet!
result = fetch_data()  # Mangler await

Conclusion

Async est puissant mais nécessite de la discipline. Commencez simplement et développez.