Sobes.tech
Назад к вопросам
Junior — Middle
76

Каким образом реализовать тайм-аут контекста в вашем приложении на Go?

Ответ от нейросети

sobes.tech AI

В Go для реализации тайм-аута контекста используется пакет context. Создается контекст с тайм-аутом с помощью функции context.WithTimeout, которая возвращает новый контекст и функцию отмены.

Пример:

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("тайм-аут или отмена контекста:", ctx.Err())
}

В этом примере, если операция занимает больше 2 секунд, контекст отменяется, и можно обработать тайм-аут. Это полезно для ограничения времени выполнения функций, запросов и т.п.