Junior — Middle
Wie kann man mehrere Anfragen zu einer zusammenfassen oder ihre sequenzielle Ausführung sicherstellen?
sobes.tech KI
Antwort von AI
In Go, um mehrere Anfragen zu einer einzigen zusammenzufassen oder ihre sequenzielle Ausführung zu gewährleisten, können verschiedene Ansätze verwendet werden:
- Sequentielle Ausführung: einfach die Anfragefunktionen nacheinander aufrufen und auf deren Abschluss warten.
resp1, err := client.Do(req1)
if err != nil {
// Fehlerbehandlung
}
resp2, err := client.Do(req2)
// usw.
- Parallele Ausführung mit Warten: die Anfragen in Goroutines starten und
sync.WaitGroupverwenden, um auf deren Abschluss zu warten.
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()
- Anfragen zusammenfassen: wenn die API es unterstützt, können mehrere Anfragen in einer einzigen zusammengefasst werden (z.B. Batch-Anfrage), aber das hängt vom Server ab.
Die Wahl hängt also von den Anforderungen ab: ob Sequenz oder Parallelität benötigt wird und ob der Server die Zusammenfassung von Anfragen unterstützt.