Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад

Как обрабатывать падение сервера при polling?

Вопрос проверяет умение проектировать устойчивое клиент-серверное взаимодействие при временной недоступности backend.

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

При падении сервера polling нельзя продолжать “в лоб” с тем же интервалом. Нужно обрабатывать ошибки и менять поведение клиента: замедлять запросы, делать retry с задержкой и информировать пользователя. Часто используют exponential backoff, чтобы не усугублять нагрузку. После восстановления сервера polling возвращается к нормальному режиму.

Длинный ответ

При сбоях polling может сам стать проблемой, если его не контролировать.

Базовая стратегия обработки ошибок

Перед деталями важно зафиксировать цель: не добивать сервер и не ломать UX.

  1. Обнаружить ошибку

    • HTTP 5xx, network error, timeout.

  2. Временно остановить или замедлить polling

    • увеличить интервал запросов.

  3. Повторить попытку позже

    • использовать retry-логику.

  4. Восстановить нормальный режим

    • после успешного ответа.

Exponential backoff (упрощённо)

let delay = 1000;

async function poll() {
  try {
    await fetch("/api/data");
    delay = 1000; // сброс при успехе
  } catch {
    delay = Math.min(delay * 2, 30000);
  }

  setTimeout(poll, delay);
}
  1. Интервал увеличивается при ошибках.

  2. Сервер получает “передышку”.

  3. Клиент остаётся устойчивым.

Типичная ошибка

  1. Показывать ошибку при каждом запросе.

  2. Делать бесконечный частый retry.

  3. Не различать временную и критическую ошибку.

Вывод

При polling падение сервера нужно обрабатывать через замедление, retry и backoff, чтобы сохранить стабильность системы.

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • Networks

Ключевые слова

#polling

Подпишись на React Developer в телеграм