<acct-file>
The line limits any exchange operation after the connection is established: sending the body, waiting for the reply. The default is 5s.
This is the threshold a slow receiver trips on. Connecting is instant, but the reply takes long because the receiving side parses the batch synchronously. Five seconds to parse a megabyte batch is not much.
The right cure is on the receiver’s side. It should reply at once and parse in the background: the engine considers a batch delivered only on a 2xx reply and holds the connection all that time.
The first half of the pair is http-webhook-connect-timeout: it limits connecting, this one — the conversation.
The comment on the receiver states it plainly: the engine considers a batch delivered only on a 2xx, and slow analytics would slow down someone else’s mail server.
The threshold is raised only when the receiver belongs to someone else and is slow:
| Value | When |
|---|---|
| 5s (default) | the receiver replies at once, parses in the background |
| up to 60s | the receiver belongs to someone else, parses synchronously, cannot be rewritten |
Your own receiver should be fixed, not worked around with a threshold.
# someone else's receiver parses the batch synchronously and does not make it in time <acct-file /var/log/pmta/webhook.json> http-webhook-url https://partner.example.com/ingest http-webhook-io-timeout 30s</acct-file>
what people get wrong and how it ends1 mistake▶
our experience
1 relation
curl -s -o /dev/null -w 'total=%{time_total}\n' -X POST --data-binary @batch.json URL
3 articles
◇What the node tells about itself and through which channelsSeven observation surfaces: the web monitor, the console in four formats, the log, accounting, accounting search, metrics and export to external analytics.◇Two inbound report processors and what to do with themBounces by message and complaints are parsed by two identically structured blocks; each has its own address list and its own pair of decisions about the message’s fate.◇Five ways for a queue to hand off a messageA queue does not have to use SMTP: it can write to a file, run a program, call over HTTP or discard.