Junior — Middle
Descreva uma situação em que o uso de contextos seria justificado e eficaz.
sobes.tech IA
Resposta da IA
No Go, os contextos (context.Context) são usados para gerir o tempo de vida das operações, especialmente em chamadas assíncronas ou de rede. Por exemplo, se tiver um servidor HTTP que processa pedidos e desejar cancelar o processamento se o cliente interromper a ligação ou se o tempo limite for excedido, o uso do contexto será adequado.
Exemplo:
func handler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
select {
case <-time.After(5 * time.Second):
fmt.Fprintln(w, "Processamento concluído")
case <-ctx.Done():
err := ctx.Err()
fmt.Println("Pedido cancelado ou tempo limite atingido:", err)
}
}
Aqui, o contexto permite cancelar uma operação prolongada se o cliente se desconectar ou se o tempo limite expirar, economizando recursos e melhorando a capacidade de resposta da aplicação.