5.25 重试策略

重试策略针对每个 HTTP 请求进行重试——而不是整个流程——保持顺序并避免非幂等重复。

默认设置

  • 3 次尝试
  • 30,000 毫秒上限
  • 10% 抖动

特定频道行为

Discord

仅在 429(速率限制)时重试。

Telegram

在以下情况下重试:

  • 429(速率限制)
  • 超时
  • 连接错误
  • 重试 Markdown 解析失败

配置

{
  channels: {
    telegram: {
      retry: {
        maxAttempts: 3,
        maxDelayMs: 30000,
        jitterPercent: 10
      }
    }
  }
}

重要特性

  • 请求级别重试:仅重试单个 HTTP 请求,不重试整个操作流程
  • 保持顺序:重试不会破坏消息顺序
  • 避免重复:不会重试非幂等操作以避免副作用
  • 指数退避:重试之间的延迟呈指数增长
  • 抖动:添加随机抖动以避免雷鸣群效应
提示
重试策略确保在临时网络故障或速率限制时的服务可靠性。不同频道有不同的重试行为以适应其 API 特性。