Concorrência e controle de fluxo
Limite o trabalho paralelo para manter o servidor saudável.
Concorrência e controle de fluxo é uma aula grátis de MCP Academy no CoddyKit. Esta é a aula 2 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.
A programação assíncrona não é infinita
A programação assíncrona permite executar muitas chamadas ao mesmo tempo, mas cada tarefa em andamento ainda usa memória e conexões. A simultaneidade sem limite pode derrubar um servidor. 💥
O que significa contrapressão
Contrapressão é a forma como um servidor ocupado reage ao trabalho recebido, desacelerando-o ou colocando-o em fila em vez de tentar fazer tudo de uma vez.
Limite o trabalho paralelo
Um semáforo define um teto para o número de tarefas executadas em paralelo, para que o servidor aceite apenas o volume que consegue processar com segurança.
sem = asyncio.Semaphore(10)
async with sem:
await do_work()Limite seus conjuntos de conexões
Dê aos conjuntos de conexões de banco de dados e HTTP um tamanho máximo. Depois desse limite, novas chamadas aguardam uma conexão livre em vez de abrir conexões indefinidamente.
Coloque na fila, não descarte
Quando atingir a capacidade, permita que as chamadas extras aguardem brevemente na fila. Esperas curtas e limitadas são melhores do que travar durante um pico repentino de solicitações.
Limite também a fila
Uma fila sem limite apenas esconde a sobrecarga até a memória acabar. Limite o tamanho da fila e rejeite o trabalho quando ela estiver cheia.
Rejeite rapidamente quando estiver cheio
Se o servidor estiver saturado, retorne rapidamente um erro claro de servidor ocupado, para que o cliente possa tentar novamente, em vez de deixar as chamadas travarem para sempre.
Adicione timeouts em todos os lugares
Combine os limites com timeouts, para que um único sistema upstream travado não mantenha um recurso ocupado indefinidamente e prive lentamente todas as outras solicitações.
async with asyncio.timeout(5):
await call_upstream()Acompanhe as contagens em andamento
Acompanhe quantas tarefas estão ativas neste momento. O aumento das contagens de tarefas em andamento é o primeiro sinal de que a carga está superando a capacidade.
Ajuste os limites à realidade
Escolha os limites com base no comportamento medido, não em suposições. Faça testes de carga, observe a latência e aumente ou reduza os limites até o servidor permanecer estável.
Mantenha a saúde sob carga
Quando bem implementada, a contrapressão mantém o servidor estável: ele atende ao que consegue, adia o restante e nunca chega a travar.
Verificação rápida
De que a contrapressão protege um servidor?
Recapitulação: limite a carga
Você limitou o trabalho paralelo com semáforos, restringiu conjuntos de conexões e filas, adicionou timeouts e rejeitou rapidamente quando estavam cheios, mantendo o servidor saudável. ✅
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 “Concorrência e controle de fluxo” é grátis?
Sim — o texto completo de “Concorrência e controle de fluxo” é 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 “Concorrência e controle de fluxo”?
Limite o trabalho paralelo para manter o servidor saudável. 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 2 de 4.
Quanto tempo leva a aula “Concorrência e controle de fluxo”?
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