Sobes.tech
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.