fix: 恢复腾讯云账单同步并完善成本预测
- 接入腾讯云单日账单、全局限频和指数退避 - 修正月末费用预测并增加账期提示和费用归因 - 补充腾讯云限频及账单归因回归测试
This commit is contained in:
1 parent
88c41f0b2b
commit
dd3770a66c
15 files changed
+610
-17
No files matched your search
@@ -0,0 +1,28 @@
|
||||
package cloud
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
// TestTencentRetryDelay 验证限频错误指数退避与最大重试次数。 // Logan.Li
|
||||
func TestTencentRetryDelay(t *testing.T) {
|
||||
rateLimitErr := &tencentAPIError{Code: "RequestLimitExceeded", Message: "frequency limit"}
|
||||
delay, retry := tencentRetryDelay(rateLimitErr, 0)
|
||||
if !retry || delay != 500*time.Millisecond {
|
||||
t.Fatalf("首次限频退避错误: retry=%v delay=%s", retry, delay)
|
||||
}
|
||||
|
||||
delay, retry = tencentRetryDelay(rateLimitErr, 2)
|
||||
if !retry || delay != 2*time.Second {
|
||||
t.Fatalf("第三次限频退避错误: retry=%v delay=%s", retry, delay)
|
||||
}
|
||||
|
||||
if _, retry = tencentRetryDelay(rateLimitErr, tencentMaxAttempts-1); retry {
|
||||
t.Fatal("达到最大次数后不应继续重试")
|
||||
}
|
||||
if _, retry = tencentRetryDelay(errors.New("鉴权失败"), 0); retry {
|
||||
t.Fatal("非限频错误不应重试")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user