Junior — Middle
Wie implementiert man einen Timeout für den Kontext in Ihrer Go-Anwendung?
sobes.tech KI
Antwort von AI
In Go wird das Paket context verwendet, um eine Timeout-Implementierung für den Kontext zu realisieren. Es wird ein Kontext mit Timeout mittels der Funktion context.WithTimeout erstellt, die einen neuen Kontext und eine Abbruchfunktion zurückgibt.
Beispiel:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("Operation abgeschlossen")
case <-ctx.Done():
fmt.Println("Timeout oder Kontextabbruch:", ctx.Err())
}
In diesem Beispiel wird, wenn die Operation länger als 2 Sekunden dauert, der Kontext abgebrochen und der Timeout kann behandelt werden. Dies ist nützlich, um die Ausführungszeit von Funktionen, Anfragen usw. zu begrenzen.