Go · Intermediário · Inglês · Técnico
context
Pacote e tipo que carregam prazo, sinal de cancelamento e valores atravessando chamadas e goroutines. É passado como primeiro parâmetro, chamado ctx, de funções que podem demorar.
Onde usar
Todo handler HTTP, consulta ao banco e chamada de rede deveria receber um ctx. Quando o cliente desiste ou o prazo estoura, o cancelamento se propaga por toda a árvore de chamadas.
Em código
func buscar(ctx context.Context) error {
select {
case <-time.After(2 * time.Second):
return nil
case <-ctx.Done():
return ctx.Err() // cancelado ou prazo
}
}Exemplos
Pass the context as the first argument.
Passe o context como primeiro argumento.
The query stopped when the request context was canceled.
A consulta parou quando o context da requisição foi cancelado.
Cuidado
Não guarde ctx em struct nem passe nil; o contexto é parâmetro de função e, sem escolha melhor, use context.TODO.
Sinônimos
ctx
Origem
Do latim contextus, 'tecido junto'.