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:
parent
e5e4e3512b
commit
d36a58341d
|
|
@ -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', // 流控
|
||||
],
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue