Sobes.tech
Junior — Middle

Hoe implementeer je een context-timeout in je Go-toepassing?

sobes.tech AI

Antwoord van AI

In Go wordt het context-pakket gebruikt om een timeout voor de context te implementeren. Een context met timeout wordt gemaakt met behulp van de functie context.WithTimeout, die een nieuwe context en een annuleringsfunctie retourneert.

Voorbeeld:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case <-time.After(3 * time.Second):
    fmt.Println("operatie voltooid")
case <-ctx.Done():
    fmt.Println("timeout of context annulering:", ctx.Err())
}

In dit voorbeeld, als de operatie langer dan 2 seconden duurt, wordt de context geannuleerd en kan de timeout worden afgehandeld. Dit is handig om de uitvoeringstijd van functies, verzoeken, enz. te beperken.