Lifespan-oppstartskroken
Åpne tilkoblinger én gang når serveren starter.
Lifespan-oppstartskroken er en gratis leksjon i MCP Academy på CoddyKit. Dette er leksjon 1 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.
Start én gang, bruk mange ganger
Noe oppsett bør gjøres én gang når serveren starter, for eksempel å åpne en databaseforbindelse, ikke ved hvert eneste verktøykall. 🚀
Bli kjent med levetiden
Levetiden er en krok som kjører oppstartskode før forespørsler kommer inn, og deretter avslutningskode etter at serveren stopper.
En asynkron kontekstbehandler
En levetid er en asynkron kontekstbehandler: kode før yield er oppstart, og kode etter yield er avslutning.
from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(server):
# startup
yield
# shutdownKoble den til FastMCP
Du gir levetiden til serveren med argumentet lifespan, slik at FastMCP vet at den skal kjøre den gjennom serverens levetid.
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo", lifespan=lifespan)Åpne kostbare ressurser her
Oppstartsblokken er riktig sted for kostbart oppsett: databasepooler, HTTP-klienter eller lasting av en modell i minnet.
Yield den delte tilstanden
Det du yield-er, blir den delte konteksten for hver forespørsel, så bygg den én gang og send den videre.
async def lifespan(server):
db = await connect_db()
yield {"db": db}Oppstart kjører før alle verktøy
FastMCP garanterer at oppstarten er fullført før det første verktøykallet godtas, slik at ressursene er klare i tide.
En typet kontekst, om ønskelig
Du kan yield-e en liten dataclass i stedet for en dict for å få typet tilgang til de delte objektene, med støtte for autoutfylling.
from dataclasses import dataclass
@dataclass
class AppCtx:
db: objectHold oppstarten rask
Klientene venter på oppstarten, så hold den slank: koble til det du trenger, og utsett langsomt valgfritt arbeid til det faktisk brukes.
Én levetid per server
En server har nøyaktig én levetid. Samle all oppstartslogikk i den i stedet for å spre oppsettet rundt i verktøyene.
Håndter oppstartsfeil
Hvis oppstarten utløser en feil, bør serveren nekte å starte i stedet for å kjøre med ufullstendig konfigurasjon og feile på mystisk vis senere.
Rask sjekk
Hvor i en levetid skal oppstartskoden plasseres i forhold til yield?
Oppsummering: Levetidskroken
Du har lært om lifespan: en asynkron kontekstbehandler som kjører oppsett før yield, returnerer delt tilstand og rydder opp etterpå. Neste tema er å dele den. 🎯
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 «Lifespan-oppstartskroken» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien MCP Academy, inkludert «Lifespan-oppstartskroken», 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 «Lifespan-oppstartskroken»?
Åpne tilkoblinger én gang når serveren starter. 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 1 av 4.
Hvor lang tid tar leksjonen «Lifespan-oppstartskroken»?
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
- Lifespan-oppstartskroken
- Dele tilstand via appkontekst
- Få tilgang til kontekstobjektet
- Ryddig avslutning og frigjøring av ressurser