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

Использовал ли ты метод Context.WithTimeout для ограничения времени выполнения операций?

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

sobes.tech AI

Да, метод context.WithTimeout в Go часто используется для ограничения времени выполнения операций, особенно при работе с сетевыми запросами, базами данных или другими длительными процессами.

Он создает новый контекст, который автоматически отменяется по истечении заданного времени, что позволяет избежать зависаний и контролировать таймауты.

Пример использования:

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

err := doSomething(ctx)
if err != nil {
    if errors.Is(err, context.DeadlineExceeded) {
        fmt.Println("Операция превысила время ожидания")
    } else {
        fmt.Println("Ошибка выполнения:", err)
    }
}

В этом примере функция doSomething должна поддерживать контекст и прерывать работу, если время вышло.