MCP Academy · Lektion

Återanvänd anslutningar under lifespan

Återanvänd DB- och HTTP-klienter mellan begäranden.

Lektion 3 av 413 steg

Återanvänd anslutningar under lifespan är en gratis lektion i MCP Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för MCP Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i MCP Academy innehåller totalt 4 lektioner.

Det tar tid att ansluta

Det är långsamt att öppna en ny databas- eller HTTP-anslutning vid varje anrop. Handshaken lägger till fördröjning som snabbt byggs på under belastning. 🐢

Återanvänd med en pool

En anslutningspool håller ett antal aktiva anslutningar redo, lånar ut en per begäran och tar tillbaka den när arbetet är klart.

Skapa poolen vid uppstart

Hooken lifespan är den perfekta platsen: skapa poolen en gång när servern startar, innan något verktyg körs.

@asynccontextmanager
async def lifespan(server):
    pool = await create_pool(DSN)
    yield {"pool": pool}

Yielda den som delat tillstånd

Allt som Ni yield:ar från lifespan blir delad kontext, så att varje handler når samma pool utan att skapa den på nytt.

Nå den via kontexten

Hämta poolen från begärans kontext inuti ett verktyg i stället för att öppna en egen anslutning varje gång.

pool = ctx.request_context.lifespan_context["pool"]

Låna, använd, lämna tillbaka

Hämta en anslutning från poolen, kör frågan och låt den lämnas tillbaka automatiskt. with-blocket hanterar både utlåning och återlämning.

async with pool.acquire() as conn:
    rows = await conn.fetch(sql)

Begränsa poolens storlek

Ange en maximal storlek så att poolen aldrig öppnar fler anslutningar än databasen klarar av, även när anropen strömmar in.

pool = await create_pool(DSN, max_size=10)

Dela även en HTTP-klient

Samma idé fungerar för HTTP: skapa en httpx-klient i lifespan och återanvänd den så att anslutningarna förblir varma och poolade.

client = httpx.AsyncClient()
yield {"http": client}

Pooler är trådsäkra

En bra async-pool är byggd för konkurrens och delar säkert ut anslutningar till många begäranden som körs samtidigt.

Se upp för läckor

Lämna alltid tillbaka det Ni lånar. En anslutning som Ni glömmer att lämna tillbaka är en läcka som långsamt tömmer poolen tills anropen stannar upp.

Stäng den vid avstängning

Efter lifespan-yield:en ska Ni stänga poolen så att anslutningarna avslutas korrekt när servern stoppas.

    yield {"pool": pool}
    await pool.close()

Snabb kontroll

Var skapar Ni en anslutningspool?

Sammanfattning: Poolning

Ni poolade anslutningar i lifespan: skapa en gång, dela via kontexten, låna per anrop och stäng vid avstängning. Nästa steg är cachning och hastighetsbegränsning. 🎯

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Återanvänd anslutningar under lifespan” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen MCP Academy, inklusive ”Återanvänd anslutningar under lifespan”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i MCP Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Återanvänd anslutningar under lifespan”?

Återanvänd DB- och HTTP-klienter mellan begäranden. Ni övar på MCP Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig MCP Academy?

Du behöver inga förkunskaper. Utbildningen i MCP Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Återanvänd anslutningar under lifespan”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här MCP Academy-lektionen?

Ja. Varje MCP Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Exponera SQL-frågor säkert
  2. Gör ett REST-API till verktyg
  3. Återanvänd anslutningar under lifespan
  4. Cacha och hastighetsbegränsa upstreams
← Tillbaka till MCP Academy