Verbindingen poolen tijdens de levensduur
Gebruik database- en HTTP-clients opnieuw voor meerdere requests.
Verbindingen poolen tijdens de levensduur is een gratis MCP Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject MCP Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus MCP Academy bevat in totaal 4 lessen.
Verbinding maken kost tijd
Elke keer dat je een nieuwe database- of HTTP-verbinding opent, is dat traag. De handshake zorgt voor extra vertraging die bij hoge belasting snel oploopt. 🐢
Hergebruik met een pool
Een verbindingspool houdt een aantal actieve verbindingen klaar, leent er één uit per verzoek en neemt die terug zodra het werk klaar is.
Bouw de pool bij het opstarten
De hook lifespan is de perfecte plek: maak de pool één keer aan wanneer de server opstart, voordat een tool wordt uitgevoerd.
@asynccontextmanager
async def lifespan(server):
pool = await create_pool(DSN)
yield {"pool": pool}Geef de pool door als gedeelde toestand
Alles wat je vanuit de lifespan yieldt, wordt gedeelde context. Zo gebruikt elke handler dezelfde pool zonder die opnieuw op te bouwen.
Benader de pool via de context
Haal in een tool de pool uit de context van het verzoek, in plaats van elke keer een eigen verbinding te openen.
pool = ctx.request_context.lifespan_context["pool"]Leen, gebruik en geef terug
Haal een verbinding uit de pool, voer je query uit en laat de verbinding automatisch terugkeren. Het blok with handelt het uitlenen en vrijgeven af.
async with pool.acquire() as conn:
rows = await conn.fetch(sql)Beperk de poolgrootte
Stel een maximumgrootte in, zodat de pool nooit meer verbindingen opent dan je database aankan, zelfs niet wanneer de verzoeken binnenstromen.
pool = await create_pool(DSN, max_size=10)Deel ook één HTTP-client
Hetzelfde idee werkt voor HTTP: maak één httpx-client in de lifespan en hergebruik die, zodat verbindingen actief en gepoold blijven.
client = httpx.AsyncClient()
yield {"http": client}Pools zijn threadveilig
Een goede asynchrone pool is gebouwd voor concurrentie en geeft veilig verbindingen aan veel verzoeken die tegelijkertijd worden uitgevoerd.
Let op lekken
Geef altijd terug wat je leent. Een verbinding die je vergeet terug te geven, is een lek dat de pool langzaam uitput totdat verzoeken vastlopen.
Sluit de pool af bij het stoppen
Sluit de pool na de yield van de lifespan met close, zodat verbindingen netjes worden afgebouwd wanneer de server stopt.
yield {"pool": pool}
await pool.close()Korte controle
Waar bouw je een verbindingspool?
Samenvatting: pooling
Je hebt verbindingen gepoold in de lifespan: één keer bouwen, delen via de context, per verzoek lenen en afsluiten bij het stoppen. Hierna behandelen we cachen en snelheidsbeperking. 🎯
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Verbindingen poolen tijdens de levensduur” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad MCP Academy, waaronder “Verbindingen poolen tijdens de levensduur”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus MCP Academy bevat in totaal 4 lessen.
Wat leer ik in “Verbindingen poolen tijdens de levensduur”?
Gebruik database- en HTTP-clients opnieuw voor meerdere requests. Je oefent met MCP Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met MCP Academy te beginnen?
Ervaring vooraf is niet nodig. MCP Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Verbindingen poolen tijdens de levensduur”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over MCP Academy?
Ja. Elke les over MCP Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- SQL-queries veilig beschikbaar stellen
- Een REST-API als tools verpakken
- Verbindingen poolen tijdens de levensduur
- Upstreams cachen en rate-limiten