Återanvänd anslutningar under lifespan
Återanvänd DB- och HTTP-klienter mellan begäranden.
Å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. 🎯
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
- Exponera SQL-frågor säkert
- Gör ett REST-API till verktyg
- Återanvänd anslutningar under lifespan
- Cacha och hastighetsbegränsa upstreams