Python Async Patterns

Async i Python er noget rod hvis man ikke ved hvad man laver. Her er mine erfaringer efter at have debugget alt for mange race conditions.

Problem 1: Blokerende kald i async kode

Det her er en klassisk fejl som alle laver:

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

Brug istedet aiohttp eller 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()

Problem 2: Glemmer at awaite

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

Konklusion

Async er powerfult men kræver disciplin. Start simpelt og byg op.