retry-attempts

<proxy>

Сколько раз пробовать этот прокси перед переходом к следующему
в конфигурации это строкаretry-attempts 1внутри блока <proxy>
Когда сдаваться и брать следующий

Список прокси в use-proxy — это цепочка запасных: второй берётся, только когда первый не ответил. Строка задаёт, сколько раз попробовать, прежде чем перейти к следующему. Умолчание — 1, потолок — 10.

Умолчание означает «одна попытка и дальше». Мгновенное переключение хорошо, когда прокси действительно упал, и плохо, когда он просто моргнул: очередь уйдёт на запасной и останется там до его отказа.

Цена ожидания — задержка доставки. Каждая неудачная попытка занимает время; десять попыток к лежащему прокси задержат письма на всё это время, вместо того чтобы сразу взять живой.

Строка на прокси, а не на список. У каждого блока может быть своё число: у надёжного основного — больше, у запасного — меньше.

Главная ловушка — поднять число, приняв «моргание» за правило. Если прокси падает регулярно, лечить надо прокси. Увеличенное число попыток лишь удлиняет задержку в каждом таком случае и делает переключение на запасной бесполезно медленным.
Что делает Хаб. Не пишет: блоков <proxy> в конфигурации нет, а запасного прокси у адреса отправки нет тоже — переключаться не на что. Сбой соединения с гейтом очередь отрабатывает обычными повторами.
Рекомендуемые значения

Выбирают по поведению прокси при сбое:

Значение Когда
1 (умолчание) прокси либо жив, либо надолго мёртв
2–3 прокси перезапускается за секунды
ближе к 10 почти никогда: задержка растёт линейно
Умолчание 1, диапазон от 1 до 10 и правило перехода к следующему прокси — из руководства (§ 3.3.22.5, § 3.3.1.47). Совет соразмерять с временем перезапуска — наш.
Пример в конфигурации
# прокси перезапускается за секунды — даём ему три попытки
<proxy mta-proxy>
    server proxy.internal:9999
    client 16.80.77.101  client2.hostname.com
    retry-attempts 3</proxy>
У запасного прокси число обычно оставляют равным одному: он и так последний в цепочке.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается1 ошибка▶

Поднимают число попыток вместо починки прокси

наш опыт

Чем чреватоКаждая неудачная попытка занимает время. Регулярно падающий прокси при большом числе попыток задерживает доставку в каждом случае, вместо того чтобы сразу уступить живому.
Как заметитьЗадержки доставки растут волнами, совпадая с перезапусками прокси.
Как правильноОставить одну-две попытки и разбираться с самим прокси.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
retry-attempts <integer>
Значения
целое от 1 до 10
Умолчание
1 § 3.3.22.5
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<proxy>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <proxy> и касается попыток только к нему. Порядок перебора задаётся не здесь, а списком в use-proxy.
Как проверить на узле
Через какой прокси ушло письмо, видно по столбцам прокси в учёте — сначала найти их номера:
head -1 "$(ls -t /var/log/pmta/acct-*.csv | head -1)" | tr -d '\r' | tr ',' '\n' | grep -n '^dlvProxy'
Номер строки — номер столбца: по нему строки разбирают, например cut -d, -f1,N. Пусто — поля dlvProxy… не выбраны в record-fields, и прокси в учёте не видны. Постоянная работа через запасной прокси означает, что основной недоступен.
В Хабе
Цена ошибки
с перерывом: применение прерывает работу узла
Сценарии
Отправка через прокси