Sobes.tech
Junior — Middle

Come implementare un timeout del contesto nella tua applicazione in Go?

sobes.tech AI

Risposta dell'AI

In Go, per implementare un timeout del contesto si utilizza il pacchetto context. Si crea un contesto con timeout usando la funzione context.WithTimeout, che restituisce un nuovo contesto e una funzione di cancellazione.

Esempio:

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

select {
case <-time.After(3 * time.Second):
    fmt.Println("operazione completata")
case <-ctx.Done():
    fmt.Println("timeout o cancellazione del contesto:", ctx.Err())
}

In questo esempio, se l'operazione richiede più di 2 secondi, il contesto viene cancellato e il timeout può essere gestito. Questo è utile per limitare il tempo di esecuzione di funzioni, richieste, ecc.