Junior — Middle
Podes fornecer situações ou casos em que o conceito de contexto é utilizado?
sobes.tech IA
Resposta da IA
No Go, o conceito de contexto (context.Context) é utilizado para gerir o tempo de vida das operações, cancelamentos, limites de tempo e transmissão de valores entre goroutines.
Principais casos de uso:
- Cancelar operações: por exemplo, ao trabalhar com pedidos de rede ou bases de dados, pode cancelar uma operação longa se o cliente interromper o pedido.
- Limites de tempo e timeouts: pode definir um tempo máximo de execução de uma operação, após o qual ela será automaticamente cancelada.
- Transmissão de valores: por exemplo, identificadores de pedidos, tokens de autenticação, metadados necessários em diferentes níveis de chamadas.
Exemplo:
func HandleRequest(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
// Executar trabalho
case <-ctx.Done():
// Operação cancelada ou limite de tempo atingido
return
}
}
O contexto ajuda a escrever um código mais gerível e responsivo, especialmente em aplicações concorrentes e de rede.