Ferramentas assíncronas que não bloqueiam
Use E/S assíncrona para atender várias chamadas ao mesmo tempo.
Ferramentas assíncronas que não bloqueiam é uma aula grátis de MCP Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de MCP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de MCP Academy inclui 4 aulas no total.
Uma ferramenta lenta faz todos esperarem
Se uma ferramenta executar trabalho lento de forma síncrona, ela bloqueia o servidor inteiro, fazendo com que todas as outras chamadas tenham de esperar sua vez. ⏳
A maior parte da lentidão é espera
Uma ferramenta que chama um banco de dados ou uma API passa a maior parte do tempo em E/S, apenas esperando uma resposta em vez de usar a CPU.
A programação assíncrona libera o servidor
Marcar uma ferramenta como assíncrona permite que o servidor processe outras solicitações durante essa espera, em vez de ficar ocioso em uma única chamada.
Defina uma ferramenta async def
Declare seu manipulador com async def e o FastMCP aguardará sua execução, permitindo que o ciclo de eventos atenda a outros trabalhos enquanto isso.
@mcp.tool()
async def fetch(city: str) -> str:
...Use await nas chamadas de E/S
Dentro de uma ferramenta assíncrona, use await em bibliotecas assíncronas, para que cada pausa devolva o controle ao ciclo em vez de congelá-lo.
data = await client.get(url)
return data.textUse bibliotecas nativamente assíncronas
Prefira clientes como httpx ou asyncpg. Eles foram criados para aguardar operações, ao contrário das bibliotecas bloqueantes, que paralisam todo o ciclo.
Nunca bloqueie o ciclo de eventos
Um time.sleep simples ou um ciclo pesado bloqueia todas as outras solicitações. Em código assíncrono, chamadas bloqueantes congelam o servidor silenciosamente.
Descarregue o trabalho pesado da CPU
Para cálculos realmente intensivos na CPU, transfira o trabalho para uma thread com asyncio.to_thread, mantendo o ciclo de eventos livre para atender chamadas.
result = await asyncio.to_thread(crunch, data)Execute chamadas simultaneamente
Precisa fazer várias buscas ao mesmo tempo? asyncio.gather executa objetos aguardáveis em conjunto, terminando muito mais rápido do que aguardar cada um por vez.
a, b = await asyncio.gather(get(x), get(y))Adicione um timeout às esperas
Envolva esperas lentas em um timeout, para que um sistema upstream travado não mantenha uma solicitação ocupada para sempre nem prive o servidor de recursos.
A programação assíncrona aumenta a simultaneidade
Com E/S assíncrona, um processo pode administrar muitas chamadas em andamento ao mesmo tempo, mantendo o servidor responsivo sob uma carga real.
Verificação rápida
Por que a E/S assíncrona ajuda um servidor MCP ocupado?
Recapitulação: não bloqueie
Você tornou as ferramentas assíncronas, aguardou a E/S, descarregou o trabalho da CPU e executou chamadas em conjunto, para que uma ferramenta lenta não congele mais o servidor. 🚀
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Ferramentas assíncronas que não bloqueiam” é grátis?
Sim — o texto completo de “Ferramentas assíncronas que não bloqueiam” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de MCP Academy, atualize para CoddyKit PRO. O curso de MCP Academy inclui 4 aulas no total.
O que vou aprender em “Ferramentas assíncronas que não bloqueiam”?
Use E/S assíncrona para atender várias chamadas ao mesmo tempo. Você pratica MCP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar MCP Academy?
Nenhuma experiência prévia é necessária. MCP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Ferramentas assíncronas que não bloqueiam”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de MCP Academy?
Sim. Cada aula de MCP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Ferramentas assíncronas que não bloqueiam
- Concorrência e controle de fluxo
- Reduzir resultados que consomem muitos tokens
- Escalonar horizontalmente com sessões