MCP Academy · leksjon

Pool-tilkoblinger i lifespan

Gjenbruk database- og HTTP-klienter på tvers av forespørsler.

Leksjon 3 av 413 trinn

Pool-tilkoblinger i lifespan er en gratis leksjon i MCP Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i MCP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i MCP Academy inneholder totalt 4 leksjoner.

Tilkoblinger koster tid

Det er tregt å åpne en ny database- eller HTTP-tilkobling for hvert kall. Håndtrykket tilfører forsinkelse som raskt hoper seg opp under belastning. 🐢

Gjenbruk med en pool

En tilkoblingspool holder et sett aktive tilkoblinger klare, låner ut én per forespørsel og tar den tilbake når arbeidet er ferdig.

Bygg poolen ved oppstart

lifespan-hooken er det perfekte stedet: Opprett poolen én gang når serveren starter, før noen verktøy kjører.

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

Yield den som delt tilstand

Alt du yielder fra lifespan, blir delt kontekst, slik at hver handler får tilgang til den samme poolen uten å bygge den på nytt.

Få tilgang via kontekst

Inne i et verktøy henter du poolen fra forespørselens context i stedet for å åpne din egen tilkobling hver gang.

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

Lån, bruk, lever tilbake

Hent en tilkobling fra poolen, kjør spørringen din, og la den returneres automatisk. with-blokken håndterer utlån og frigivelse.

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

Begrens poolens størrelse

Angi en maksimal størrelse slik at poolen aldri åpner flere tilkoblinger enn databasen kan håndtere, selv når mange kall kommer inn samtidig.

pool = await create_pool(DSN, max_size=10)

Del en HTTP-klient også

Den samme ideen fungerer for HTTP: Bygg én httpx-klient i lifespan og gjenbruk den, slik at tilkoblingene holdes varme og samles i en pool.

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

Pooler er trådsikre

En god async-pool er laget for samtidighet og deler trygt ut tilkoblinger til mange forespørsler som kjører samtidig.

Se opp for lekkasjer

Frigjør alltid det du låner. En tilkobling du glemmer å levere tilbake, er en lekkasje som gradvis tømmer poolen til kallene stopper opp.

Lukk den ved avslutning

Etter yield i lifespan må du lukke poolen, slik at tilkoblingene avsluttes ryddig når serveren stopper.

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

Rask sjekk

Hvor bygger du en tilkoblingspool?

Oppsummering: Pooling

Du samlet tilkoblingene i lifespan: bygg én gang, del via kontekst, lån per kall og lukk ved avslutning. Neste steg er hurtigbufring og hastighetsbegrensning. 🎯

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Pool-tilkoblinger i lifespan» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien MCP Academy, inkludert «Pool-tilkoblinger i lifespan», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i MCP Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Pool-tilkoblinger i lifespan»?

Gjenbruk database- og HTTP-klienter på tvers av forespørsler. Du øver på MCP Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med MCP Academy?

Ingen tidligere erfaring er nødvendig. MCP Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Pool-tilkoblinger i lifespan»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne MCP Academy-leksjonen?

Ja. Alle MCP Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Eksponere SQL-spørringer på en trygg måte
  2. Pakke inn et REST-API som verktøy
  3. Pool-tilkoblinger i lifespan
  4. Bufre og hastighetsbegrense oppstrømskilder
← Tilbake til MCP Academy