Sobes.tech
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.