Nodul LogoNodul
Обработка ошибок

Перезапуск узла при ошибке

Во всех узлах-действиях на Nodul в разделе расширенных настроек есть настройка Повторить при ошибке узла. Она позволяет автоматически перезапускать узел и повторять запрос, если сервис вернул ошибку.

Демонстрация работы retry

Когда это нужно

Сервис, к которому вы обращаетесь, вернул ошибку — 500, 503, таймаут, 429 «Too Many Requests» и т.д.

В обычном поведении это привело бы к остановке сценария. Но с включённым перезапуском система автоматически повторит запрос указанное количество раз с заданной паузой между попытками.

Когда использовать:

  • API иногда отвечает 500 или 503
  • Бывают таймауты при высокой нагрузке
  • Сервис возвращает 429 при превышении лимита запросов

Настройка

Полная панель настроек обработки ошибок

Повторить при ошибке узла — включить автоматический повтор при ошибке узла.

Количество попыток — сколько раз повторить запрос (по умолчанию: 2).

Задержка между попытками (сек) — пауза между попытками в секундах (по умолчанию: 3).

RegExp (регулярное выражение) — при необходимости можно отфильтровать, при каких именно ошибках перезапускать узел. По умолчанию повтор при любой ошибке. Если задать паттерн, перезапуск будет только при ошибках, которые ему соответствуют.

Важно: без .* паттерн сработает только если весь текст ошибки целиком равен вашему слову. Всегда пишите .*(ваш_паттерн).*

Примеры паттернов

ЗадачаПаттерн
Перезапуск только при ошибке 500.*500.*
Перезапуск при 500 или 503.*(500|503).*
Перезапуск при таймауте.*timeout.*
Перезапуск при превышении лимита (429).*429.*
Перезапуск при любой 5xx-ошибке.*5\d\d.*

Используется движок регулярных выражений Go (RE2). Поддерживаются: \d, \s, \w, |, (). Не поддерживаются: lookahead (?=...) и lookbehind (?<=...).

Для обычных API-ошибок обычно достаточно 2–3 попыток с задержкой 3–5 сек.

Что дальше