Какие методы можно использовать для предотвращения возникновения ошибки 500 в случае истечения времени ожидания ответа от базы данных?

Для предотвращения ошибки 500 из-за истечения времени ожидания ответа от базы данных в Go можно использовать несколько подходов:

Короткий ответ

Что ответить на собеседовании

Для предотвращения ошибки 500 из-за истечения времени ожидания ответа от базы данных в Go можно использовать несколько подходов:

Подробный разбор

Ответ с пояснениями

Для предотвращения ошибки 500 из-за истечения времени ожидания ответа от базы данных в Go можно использовать несколько подходов:

  1. Контекст с таймаутом — использовать context.WithTimeout для ограничения времени выполнения запроса к базе.
  2. Пул соединений — правильно настроить пул соединений, чтобы избежать блокировок и задержек.
  3. Обработка ошибок — корректно обрабатывать ошибки таймаута и возвращать понятные клиенту ответы.

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

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

err := db.QueryRowContext(ctx, "SELECT ...").Scan(&result)
if err != nil {
    if errors.Is(err, context.DeadlineExceeded) {
        // обработка таймаута
    } else {
        // другая ошибка
    }
}

Такой подход помогает избежать зависаний и контролировать время ожидания ответа от базы.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку