Senior
Použil jsi kontexty v praxi? Vyprávěj.
sobes.tech AI
Odpověď od AI
Ano, pravidelně jsem používal kontexty v Go, zejména pro řízení doby běhu a zrušení operací v síťových požadavcích a gorutinách. Kontext umožňuje přenášet signály zrušení a časové limity přes řetězec volání, což pomáhá předcházet únikům gorutin a kontrolovat dobu běhu.
Příklad použití:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("operace dokončena")
case <-ctx.Done():
fmt.Println("operace zrušena nebo vypršela")
}
Tímto způsobem, pokud operace trvá déle než 2 sekundy, bude přerušena, což zvyšuje odolnost a odezvu aplikace.