MCP Academy · Leçon

Outils asynchrones non bloquants

Utilisez les entrées-sorties asynchrones pour traiter de nombreux appels simultanément.

Leçon 1 sur 413 étapes

Outils asynchrones non bloquants est une leçon MCP Academy gratuite sur CoddyKit. Ceci est la leçon 1 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.

Un outil lent fait attendre tout le monde

Si un outil effectue un travail lent de manière synchrone, il bloque l’ensemble du serveur et tous les autres appels doivent attendre leur tour. ⏳

La plupart des lenteurs sont de l’attente

Un outil qui appelle une base de données ou une API passe la majeure partie de son temps en E/S, à attendre une réponse plutôt qu’à utiliser le CPU.

L’asynchrone libère le serveur

Déclarer un outil comme asynchrone permet au serveur de traiter d’autres requêtes pendant cette attente, au lieu de rester inactif sur un seul appel.

Définir un outil avec async def

Déclarez votre gestionnaire avec async def et FastMCP l’attendra, afin que la boucle d’événements puisse traiter d’autres tâches entre-temps.

@mcp.tool()
async def fetch(city: str) -> str:
    ...

Utiliser await pour vos appels d’E/S

Dans un outil asynchrone, utilisez await avec les bibliothèques asynchrones afin que chaque pause rende le contrôle à la boucle au lieu de la bloquer.

data = await client.get(url)
return data.text

Utiliser des bibliothèques natives asynchrones

Privilégiez des clients comme httpx ou asyncpg. Ils sont conçus pour utiliser await, contrairement aux bibliothèques bloquantes qui paralysent toute la boucle.

Ne bloquez jamais la boucle d’événements

Un simple time.sleep ou une boucle lourde bloque toutes les autres requêtes. Dans du code asynchrone, les appels bloquants gèlent silencieusement le serveur.

Déporter les calculs intensifs du CPU

Pour les calculs réellement intensifs, déportez-les vers un fil d’exécution avec asyncio.to_thread afin que la boucle d’événements reste libre de traiter les appels.

result = await asyncio.to_thread(crunch, data)

Exécuter les appels en parallèle

Vous devez effectuer plusieurs opérations fetch à la fois ? asyncio.gather exécute les opérations attendables ensemble, bien plus rapidement que de les attendre une par une.

a, b = await asyncio.gather(get(x), get(y))

Ajouter un délai d’expiration aux attentes

Entourez les attentes lentes d’un délai d’expiration afin qu’un service amont bloqué ne puisse pas monopoliser une requête indéfiniment et priver le serveur de ressources.

L’asynchrone augmente la capacité de concurrence

Avec les E/S asynchrones, un seul processus peut gérer de nombreux appels en cours à la fois. Votre serveur reste donc réactif même sous une charge réelle.

Vérification rapide

Pourquoi les E/S asynchrones aident-elles un serveur MCP très sollicité ?

Récapitulatif : ne bloquez pas

Vous avez rendu les outils asynchrones, attendu les E/S, déporté les calculs du CPU et exécuté les appels ensemble. Un outil lent ne gèle donc plus le serveur. 🚀

Gratuit pour commencer

Apprends Python avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Outils asynchrones non bloquants » est-elle gratuite ?

Oui — le texte complet de « Outils asynchrones non bloquants » 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 « Outils asynchrones non bloquants » ?

Utilisez les entrées-sorties asynchrones pour traiter de nombreux appels simultanément. 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 1 sur 4.

Combien de temps prend la leçon « Outils asynchrones non bloquants » ?

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

  1. Outils asynchrones non bloquants
  2. Concurrence et contrôle de pression
  3. Réduire les résultats riches en jetons
  4. Mettre à l’échelle horizontalement avec des sessions
← Retour à MCP Academy