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