Назад к вопросам
Avito
Junior — Middle
79
Имели ли вы дело с использованием контекста WithTimeout в своих проектах?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Да, в проектах на Go часто используется контекст с таймаутом (context.WithTimeout) для контроля времени выполнения операций, особенно при работе с сетевыми запросами, базами данных или другими длительными процессами.
Принцип работы: создаётся новый контекст, который автоматически отменяется по истечении заданного времени. Это помогает избежать зависаний и утечек ресурсов.
Пример использования:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time-consuming-operation(ctx):
fmt.Println("Operation completed")
case <-ctx.Done():
fmt.Println("Timeout reached, operation cancelled")
}
Таким образом, WithTimeout помогает управлять временем выполнения и корректно обрабатывать ситуации, когда операция занимает слишком много времени.