TGViewer
METANIT.COM METANIT.COM @devnull22 · 5.81K subscribers
Post #2179 1.83K
Шаблон повторных попыток (Retry Pattern)
(описание к предыдущему посту)

Это один из самых простых способов повысить отказоустойчивость системы. Как это работает:

1. Не выполняйте повторные попытки бесконечно
Повторные попытки имеют свою цену.

* Слишком мало попыток: вы можете сдаться при временных сбоях (например, кратковременном сетевом сбое).
* Слишком много попыток: вы перегружаете систему, увеличиваете время отклика и маскируете реальные проблемы.

Практическое правило: обычно оптимальным является 3 попытки. После этого более вероятно, что вы имеете дело с реальным сбоем, а не с временным.

2. Используйте экспоненциальную отсрочку
Время повторных попыток важнее их количества.

* Без таймата: все неудачные запросы повторяются мгновенно → увеличивается перегрузка системы.
* С экспоненциальной отсрочкой (таймаутом): время ожидания увеличивается (например, 1 с → 2 с → 4 с → 8 с), давая системам время на восстановление.

Это предотвращает превращение повторных попыток в проблему.

3. Выполняйте повторные попытки только при временных ошибках
Не каждая ошибка заслуживает повторной попытки.

* Подходящие для повтора: 408 (тайм-аут), 5xx (сервер перегружен).
* Неподходящие для повтора: 400 (неверный запрос), 403 (запрещено).

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

Если торговый автомат показывает «временно не работает», попробуйте позже. Если он говорит «вставьте 5 долларов, а не 1», повторная попытка не поможет.

4. Комбинируйте с паттерном Circuit Breaker (предохранитель)
Одни только повторные попытки могут вызвать каскадные сбои, если сервис действительно не работает. Circuit Breaker добавляет защиту:

* Отслеживает частоту сбоев.
* Открывается, когда количество сбоев превышает порог → останавливает повторные попытки на некоторое время.
* Закрывается, когда состояние улучшается.
Telegram METANIT.COM Шаблон повторных попыток (Retry Pattern) (описание в следующем посте)
  • 👍 6
  • ❤ 1
  • 🔥 1
  • 🥰 1
  • 👏 1
  • 🕊 1
  • 🤓 1
More from @devnull22
  1. Mar 19, 2026Добавил в руководство по JavaScript главу про работу с датами и временем с помощью Tempora…
  2. Mar 19, 2026Роскомнадзор перестал полностью справляться с блокировками в интернете Роскомнадзор (РКН)…
  3. Mar 18, 2026Минцифры опубликовало законопроект о государственном регулировании ИИ. Закон должен начать…
  4. Mar 18, 2026Microsoft призвала разработчиков создавать ИИ-приложения в Electron на Windows 11 Microsof…
  5. Mar 18, 2026Oracle анонсировала проект Detroit, который будет развиваться в составе OpenJDK и нацелен…
  6. Mar 17, 2026Вышла новая версия платформы Java - JDK 26. JDK 26 — краткосрочная версия с поддержкой Pre…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →