Sobes.tech
Junior — Middle

Como pode combinar várias consultas numa só ou garantir a sua execução sequencial?

sobes.tech IA

Resposta da IA

Em Go, para combinar várias solicitações numa só ou garantir a sua execução sequencial, podem ser utilizados vários métodos:

  1. Execução sequencial: simplesmente chamar às funções de pedido uma após a outra, esperando que cada uma termine antes de passar para a seguinte.
resp1, err := client.Do(req1)
if err != nil {
    // tratamento do erro
}
resp2, err := client.Do(req2)
// e assim por diante
  1. Execução paralela com espera: lançar as solicitações em goroutines e usar sync.WaitGroup para aguardar a sua conclusão.
var wg sync.WaitGroup
wg.Add(2)
go func() {
    defer wg.Done()
    client.Do(req1)
}()
go func() {
    defer wg.Done()
    client.Do(req2)
}()
wg.Wait()
  1. Agrupamento de pedidos: se a API suportar, pode-se combinar várias solicitações numa só (por exemplo, pedido em batch), mas isso depende do servidor.

Assim, a escolha depende dos requisitos: se é necessária uma sequência ou paralelismo, e se o servidor suporta a fusão de pedidos.