Sobes.tech
Senior

Да ли си користио контексте у пракси? Испричај.

sobes.tech АИ

Одговор од АИ

Да, редовно сам користио контексте у Go-у, посебно за управљање временом извршавања и отказивање операција у мрежним захтевима и горутинама. Контекст омогућава пренос сигнала за отказивање и временских ограничења кроз ланац позива, што помаже у избегавању цурења горутина и контролисању времена извршавања.

Пример употребе:

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

select {
case <-time.After(3 * time.Second):
    fmt.Println("операција је завршена")
case <-ctx.Done():
    fmt.Println("операција отказана или истекла")
}

На овај начин, ако операција траје дуже од 2 секунде, биће прекинута, што повећава робусност и одзивност апликације.