重试
当你的端点在 15 秒内返回 2xx 状态码时,投递即为成功。其他任何情况(非 2xx 状态码、重定向、超时、连接错误、TLS 错误)都视为失败并会被重试。
SpacePost 最多尝试 8 次:第一次立即进行,此后每次失败后都会以递增的延迟重试。
| 尝试次数 | 上一次失败后的延迟 | 距事件大约 |
|---|---|---|
| 1 | 立即 | 0 |
| 2 | 5 秒 | 5 秒 |
| 3 | 5 分钟 | 5 分钟 |
| 4 | 30 分钟 | 35 分钟 |
| 5 | 2 小时 | 2 小时 35 分钟 |
| 6 | 5 小时 | 7 小时 35 分钟 |
| 7 | 10 小时 | 17 小时 35 分钟 |
| 8 | 10 小时 | 27 小时 35 分钟 |
第 8 次尝试失败后,该次投递会被标记为失败,不再进行自动重试。你可以手动重放它。
需要了解的事项
Section titled “需要了解的事项”- 每次尝试的
webhook-id都相同,请求体也完全一致。webhook-timestamp和签名则在每次尝试时重新生成。 - 投递至少会发生一次。 超时之后才到达的缓慢
2xx会被视为失败,因此你的端点可能收到两次相同的事件。请根据webhook-id去重。 - 不保证顺序。 被重试的
email.delivered可能晚于后发生的email.opened到达。请使用载荷中的created_at,并且不要让邮件的状态倒退。 - 已停用或已删除的 Webhook 不再接收投递;它们待处理的投递会被标记为失败。
- 最近几次尝试的响应体(前 1 KB)和状态码可以在控制台的投递日志中查看,日志保留 30 天的历史记录。