Sobes.tech
Junior — Middle

Jak zaimplementować limit czasu kontekstu w Twojej aplikacji w Go?

sobes.tech AI

Odpowiedź od AI

W Go, aby zaimplementować limit czasu kontekstu, używa się pakietu context. Tworzy się kontekst z limitem czasu za pomocą funkcji context.WithTimeout, która zwraca nowy kontekst i funkcję anulowania.

Przykład:

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

select {
case <-time.After(3 * time.Second):
    fmt.Println("operacja zakończona")
case <-ctx.Done():
    fmt.Println("limit czasu lub anulowanie kontekstu:", ctx.Err())
}

W tym przykładzie, jeśli operacja zajmie więcej niż 2 sekundy, kontekst zostanie anulowany, a limit czasu można obsłużyć. Jest to przydatne do ograniczenia czasu wykonywania funkcji, zapytań itp.