Sobes.tech
Junior — Middle

Cum se pot combina mai multe interogări într-una singură sau asigura executarea lor secvențială?

sobes.tech AI

Răspuns de la AI

În Go, pentru a combina mai multe solicitări într-una singură sau pentru a asigura executarea lor secvențială, se pot folosi mai multe abordări:

  1. Executarea secvențială: pur și simplu apelați funcțiile de solicitare una după alta, așteptând finalizarea fiecăreia înainte de a trece la următoarea.
resp1, err := client.Do(req1)
if err != nil {
    // tratarea erorii
}
resp2, err := client.Do(req2)
// și așa mai departe
  1. Executarea paralelă cu așteptare: porniți solicitările în goroutines și folosiți sync.WaitGroup pentru a aștepta finalizarea lor.
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. Combinarea solicitărilor: dacă API-ul suportă, puteți combina mai multe solicitări într-una singură (de exemplu, o solicitare batch), dar acest lucru depinde de server.

Așadar, alegerea depinde de cerințe: este nevoie de secvență sau paralelism, și dacă serverul suportă combinarea solicitărilor?