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:
- 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
- Executarea paralelă cu așteptare: porniți solicitările în goroutines și folosiți
sync.WaitGrouppentru 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()
- 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?