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.