重试策略针对每个 HTTP 请求进行重试——而不是整个流程——保持顺序并避免非幂等重复。
默认设置
- 3 次尝试
- 30,000 毫秒上限
- 10% 抖动
特定频道行为
Discord
仅在 429(速率限制)时重试。
Telegram
在以下情况下重试:
- 429(速率限制)
- 超时
- 连接错误
- 不重试 Markdown 解析失败
配置
{
channels: {
telegram: {
retry: {
maxAttempts: 3,
maxDelayMs: 30000,
jitterPercent: 10
}
}
}
}
重要特性
- 请求级别重试:仅重试单个 HTTP 请求,不重试整个操作流程
- 保持顺序:重试不会破坏消息顺序
- 避免重复:不会重试非幂等操作以避免副作用
- 指数退避:重试之间的延迟呈指数增长
- 抖动:添加随机抖动以避免雷鸣群效应
提示
重试策略确保在临时网络故障或速率限制时的服务可靠性。不同频道有不同的重试行为以适应其 API 特性。