Junior — Middle
Comment implémenter un délai d'attente de contexte dans votre application en Go?
sobes.tech IA
Réponse de l'IA
En Go, pour implémenter un délai d'attente de contexte, on utilise le paquet context. Un contexte avec délai d'attente est créé à l'aide de la fonction context.WithTimeout, qui retourne un nouveau contexte et une fonction d'annulation.
Exemple:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("opération terminée")
case <-ctx.Done():
fmt.Println("délai d'attente dépassé ou contexte annulé:", ctx.Err())
}
Dans cet exemple, si l'opération prend plus de 2 secondes, le contexte est annulé et le délai d'attente peut être géré. Cela est utile pour limiter le temps d'exécution des fonctions, requêtes, etc.