Sobes.tech
Junior — Middle

¿Cómo se pueden combinar varias consultas en una sola o garantizar su ejecución secuencial?

sobes.tech AI

Respuesta de la IA

En Go, para combinar varias solicitudes en una sola o garantizar su ejecución secuencial, se pueden usar varios enfoques:

  1. Ejecución secuencial: simplemente llamar a las funciones de solicitud una tras otra, esperando que cada una termine antes de la siguiente.
resp1, err := client.Do(req1)
if err != nil {
    // manejo del error
}
resp2, err := client.Do(req2)
// y así sucesivamente
  1. Ejecución paralela con espera: lanzar las solicitudes en goroutines y usar sync.WaitGroup para esperar a que terminen.
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. Agrupación de solicitudes: si la API lo soporta, se pueden combinar varias solicitudes en una sola (por ejemplo, una solicitud por lotes), pero esto depende del servidor.

Por lo tanto, la elección depende de los requisitos: si se necesita secuencia o paralelismo, y si el servidor soporta la agrupación de solicitudes.