fix: 优化短信重试策略避免触发流控

- 降低重试次数到 2 次
- 增加基础延迟到 3 秒
- 超时错误不重试(短信可能已发送成功)
- 流控错误不重试

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-21 20:38:47 -08:00
parent e5e4e3512b
commit d36a58341d
1 changed files with 12 additions and 6 deletions

View File

@ -14,16 +14,22 @@ export interface SmsSendResult {
// 重试配置
const RETRY_CONFIG = {
maxRetries: 3, // 最大重试次数
baseDelay: 1000, // 基础延迟 1 秒
maxDelay: 5000, // 最大延迟 5 秒
maxRetries: 2, // 最大重试次数(降低,避免触发流控)
baseDelay: 3000, // 基础延迟 3 秒(增加,避免触发分钟级流控)
maxDelay: 10000, // 最大延迟 10 秒
// 只对连接阶段的错误重试,读取超时不重试(可能短信已发送)
retryableErrors: [
'ECONNRESET',
'ECONNREFUSED',
'ENOTFOUND', // DNS 解析失败
'ServiceUnavailable',
],
// 不重试的错误(可能短信已发送成功,只是响应慢)
noRetryErrors: [
'ConnectTimeout',
'ReadTimeout',
'ETIMEDOUT',
'ECONNRESET',
'ECONNREFUSED',
'ServiceUnavailable',
'BUSINESS_LIMIT_CONTROL', // 流控
],
};