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