<acct-file>
Строка ограничивает любую операцию обмена после того, как соединение установлено: отправку тела, ожидание ответа. Умолчание — 5s.
Это порог, за который цепляется медленный приёмник. Дозвон мгновенный, а ответ идёт долго, потому что принимающая сторона разбирает пачку синхронно. Пять секунд на разбор мегабайтной пачки — немного.
Правильное лечение — на стороне приёмника. Он должен отвечать сразу, а разбирать в фоне: MTA считает пачку доставленной только по ответу 2xx и всё это время держит соединение.
Первая половина пары — http-webhook-connect-timeout: она ограничивает дозвон, эта — разговор.
В комментарии к приёмнику это записано прямо: MTA считает пачку доставленной только при 2xx, и медленная аналитика тормозила бы чужой почтовый сервер.
Порог поднимают только тогда, когда приёмник чужой и медленный:
| Значение | Когда |
|---|---|
| 5s (умолчание) | приёмник отвечает сразу, разбирает в фоне |
| до 60s | приёмник чужой, разбирает синхронно, переписать нельзя |
Свой приёмник надо чинить, а не обходить порогом.
# чужой приёмник разбирает пачку синхронно и не укладывается <acct-file /var/log/pmta/webhook.json> http-webhook-url https://partner.example.com/ingest http-webhook-io-timeout 30s</acct-file>
что делают не так и чем это кончается1 ошибка▶
наш опыт
1 связь
curl -s -o /dev/null -w 'total=%{time_total}\n' -X POST --data-binary @batch.json URL
3 статьи
◇Что узел рассказывает о себе и по каким каналамСемь поверхностей наблюдения: веб-монитор, консоль в четырёх форматах, журнал, учёт, поиск по учёту, метрики и выгрузка во внешнюю аналитику.◇Два обработчика входящих отчётов и что с ними делатьОтказы письмом и жалобы разбираются двумя одинаково устроенными блоками; у каждого свой список адресов и своя пара решений о судьбе письма.◇Пять способов очереди отдать письмоОчередь не обязана ходить по SMTP: она умеет писать в файл, запускать программу, стучаться по HTTP или выбрасывать.