Arrêt propre et libération des ressources
Fermez les pools et les fichiers lorsque le serveur s’arrête.
Arrêt propre et libération des ressources est une leçon MCP Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage MCP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours MCP Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Why Shutdown Matters
Open connections that are never closed leak resources: sockets pile up, pools stay reserved, and databases stay busy.
Teardown Lives After Yield
Everything after yield in your lifespan is shutdown code, running when the server is told to stop.
async def lifespan(server):
db = await connect()
yield {"db": db}
await db.close()Close What You Opened
The golden rule: for every resource you opened in startup, add a matching close in teardown so nothing is left dangling.
try / finally Guarantees It
Wrap the yield in try / finally so cleanup still runs even if a request crashes mid-flight.
async def lifespan(server):
db = await connect()
try:
yield {"db": db}
finally:
await db.close()Drain In-Flight Work
A graceful stop lets in-flight tool calls finish before tearing down, instead of yanking the rug out from under them.
Flush Before You Close
Some clients buffer data, so flush pending writes before closing to avoid losing the last bytes you sent.
Close in Reverse Order
Tear things down in reverse of how you built them, so a thing is never closed while something depending on it is alive.
Don't Hang on Exit
Guard slow cleanup with a timeout so a stuck connection cannot block your whole server from ever shutting down.
Idempotent Cleanup
Make teardown idempotent: closing something twice should be harmless, since shutdown can be triggered more than once.
Log the Shutdown Path
A short log line per closed resource turns a silent exit into something you can actually debug when things go wrong.
Context Managers Do It For You
Wrapping clients in async with auto-closes them, letting Python handle release so you write less manual cleanup.
async def lifespan(server):
async with connect() as db:
yield {"db": db}Quick Check
Where does a lifespan put code that releases resources?
Recap: Clean Shutdown
You release resources after yield, guard it with try/finally, close in reverse, and avoid hangs. Your server now boots and stops cleanly. ✅
Questions Fréquemment Posées
La leçon « Arrêt propre et libération des ressources » est-elle gratuite ?
Oui — le texte complet de « Arrêt propre et libération des ressources » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours MCP Academy, passe à CoddyKit PRO. Le cours MCP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Arrêt propre et libération des ressources » ?
Fermez les pools et les fichiers lorsque le serveur s’arrête. Tu pratiques MCP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer MCP Academy ?
Aucune expérience préalable n'est requise. MCP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Arrêt propre et libération des ressources » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon MCP Academy ?
Oui. Chaque leçon MCP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Le crochet de démarrage du cycle de vie
- Partager l’état via le contexte de l’application
- Accéder à l’objet de contexte
- Arrêt propre et libération des ressources