MCP Academy · Lezione

Strumenti asincroni che non bloccano

Utilizzi l'I/O asincrono per gestire molte chiamate contemporaneamente.

Lezione 1 di 413 passaggi

Strumenti asincroni che non bloccano è una lezione MCP Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento MCP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso MCP Academy include 4 lezioni in totale.

Uno strumento lento fa aspettare tutti

Se uno strumento esegue un'operazione lenta in modo sincrono, blocca l'intero server, costringendo ogni altra chiamata ad aspettare il proprio turno. ⏳

La maggior parte della lentezza è attesa

Uno strumento che chiama un database o un'API trascorre la maggior parte del tempo nell'I/O, aspettando una risposta invece di utilizzare la CPU.

L'asincronia libera il server

Contrassegnare uno strumento come async consente al server di gestire altre richieste durante l'attesa, invece di restare inattivo su una singola chiamata.

Definire uno strumento async def

Dichiari il gestore con async def e FastMCP lo attenderà, consentendo al ciclo degli eventi di gestire nel frattempo altre operazioni.

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

Usare await per le chiamate I/O

All'interno di uno strumento asincrono, utilizzi await con le librerie asincrone, così ogni pausa restituisce il controllo al ciclo invece di congelarlo.

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

Utilizzare librerie native asincrone

Scelga client come httpx o asyncpg. Sono progettati per usare await, a differenza delle librerie bloccanti che arrestano l'intero ciclo.

Non blocchi mai il ciclo degli eventi

Un semplice time.sleep o un ciclo pesante blocca ogni altra richiesta. Nel codice asincrono, le chiamate bloccanti congelano silenziosamente il server.

Esternalizzare il lavoro pesante della CPU

Per un'elaborazione intensiva della CPU, la esegua in un thread con asyncio.to_thread, così il ciclo degli eventi resta libero di gestire le chiamate.

result = await asyncio.to_thread(crunch, data)

Eseguire le chiamate in concorrenza

Deve eseguire più recuperi contemporaneamente? asyncio.gather esegue insieme gli awaitable e termina molto più rapidamente rispetto ad attenderli uno alla volta.

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

Aggiungere un timeout agli await

Racchiuda gli await lenti in un timeout, così un upstream bloccato non potrà occupare una richiesta per sempre e privare il server di risorse.

L'asincronia aumenta la concorrenza

Con l'I/O asincrono, un singolo processo può gestire molte chiamate contemporaneamente, mantenendo il server reattivo anche sotto un carico reale.

Controllo rapido

Perché l'I/O asincrono è utile per un server MCP sotto carico?

Riepilogo: non blocchi

Ha reso gli strumenti asincroni, ha usato await per l'I/O, ha esternalizzato il lavoro della CPU ed eseguito insieme le chiamate, così uno strumento lento non congela più il server. 🚀

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Strumenti asincroni che non bloccano» è gratuita?

Sì — il testo completo di «Strumenti asincroni che non bloccano» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso MCP Academy, passa a CoddyKit PRO. Il corso MCP Academy include 4 lezioni in totale.

Cosa imparerò in «Strumenti asincroni che non bloccano»?

Utilizzi l'I/O asincrono per gestire molte chiamate contemporaneamente. Eserciti MCP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare MCP Academy?

Non è richiesta alcuna esperienza precedente. MCP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Strumenti asincroni che non bloccano»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione MCP Academy?

Sì. Ogni lezione MCP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Strumenti asincroni che non bloccano
  2. Concorrenza e backpressure
  3. Ridurre i risultati ricchi di token
  4. Scalare orizzontalmente con le sessioni
← Torna a MCP Academy