Junior — Middle
Comment peut-on combiner plusieurs requêtes en une seule ou assurer leur exécution séquentielle?
sobes.tech IA
Réponse de l'IA
En Go, pour combiner plusieurs requêtes en une seule ou assurer leur exécution séquentielle, plusieurs approches peuvent être utilisées:
- Exécution séquentielle: simplement appeler les fonctions de requête une par une, en attendant la fin de chacune avant de passer à la suivante.
resp1, err := client.Do(req1)
if err != nil {
// gestion de l'erreur
}
resp2, err := client.Do(req2)
// etc.
- Exécution parallèle avec attente: lancer les requêtes dans des goroutines et utiliser
sync.WaitGrouppour attendre leur fin.
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()
- Fusion des requêtes: si l'API le supporte, il est possible de fusionner plusieurs requêtes en une seule (par exemple, une requête batch), mais cela dépend du serveur.
Ainsi, le choix dépend des exigences : si une séquence ou un parallélisme est nécessaire, et si le serveur supporte la fusion des requêtes.