Senior
À quoi sert le contexte ? Comment l'avez-vous utilisé en pratique ?
sobes.tech IA
Réponse de l'IA
En Go, context est utilisé pour transmettre des signaux d’annulation, des délais et d’autres valeurs entre les goroutines, en particulier lors du travail avec des requêtes, des délais d’expiration et l’annulation d’opérations.
Application pratique :
- Annuler des opérations longues lors de la fermeture d’une requête HTTP.
- Transmettre un délai pour qu’une opération ne dure pas plus longtemps que le temps spécifié.
- Transmettre des métadonnées (par exemple, des identifiants de requête) à travers la chaîne d’appels.
Exemple d’utilisation :
func handler(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
fmt.Println("Opération terminée")
case <-ctx.Done():
fmt.Println("Opération annulée")
}
}
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
handler(ctx)
}
Ici, l’opération sera interrompue après 2 secondes, même si elle est conçue pour durer 5.