fix: 上游限频全局冷却调整为 5 秒
- rockRateLimitCooldown 由 60 秒改为 5 秒,释放校验可快速重试 - 自动轮询仍保留各自的防抖与指数退避,避免持续触发 110001 - 同步更新注释与限频测试中的冷却设置
This commit is contained in:
@@ -20,7 +20,8 @@ const (
|
||||
// 单个报文字段最大长度,避免异常大响应拖垮数据库;超出部分截断并标注。
|
||||
rockDeliveryLogMaxBodyBytes = 512 * 1024
|
||||
// 上游 110001 频控后的全局冷却时间。
|
||||
rockRateLimitCooldown = 60 * time.Second
|
||||
// 默认 5 秒:释放校验等人工操作可以快速重试;自动轮询仍有各自的退避与防抖。
|
||||
rockRateLimitCooldown = 5 * time.Second
|
||||
)
|
||||
|
||||
// rockUpstreamRateLimitedUntil 记录上游频控解禁时间(UnixNano)。
|
||||
|
||||
@@ -39,7 +39,7 @@ func (s *RockService) SetRedeemConfirmHook(hook func(ctx context.Context, order
|
||||
|
||||
// RunRedeemConfirmWorker 启动发货结果确认任务:每 20 秒扫描一次「发货确认中」标记。
|
||||
//
|
||||
// 频控保护:上游 110001 时全局冷却 60 秒,且每个 Token 使用指数退避,
|
||||
// 频控保护:上游 110001 时全局冷却 5 秒,且每个 Token 使用指数退避,
|
||||
// 避免把 0666.pro 的公开刷新接口打成持续频控。
|
||||
func (s *RockService) RunRedeemConfirmWorker(ctx context.Context) {
|
||||
lastCleanup := time.Now()
|
||||
|
||||
@@ -141,7 +141,7 @@ func TestCheckReleaseToken_RateLimitCooldownSkipsUpstream(t *testing.T) {
|
||||
t.Fatalf("创建 Token 失败: %v", err)
|
||||
}
|
||||
|
||||
rockUpstreamRateLimitedUntil.Store(time.Now().Add(30 * time.Second).UnixNano())
|
||||
rockUpstreamRateLimitedUntil.Store(time.Now().Add(rockRateLimitCooldown).UnixNano())
|
||||
t.Cleanup(func() { rockUpstreamRateLimitedUntil.Store(0) })
|
||||
|
||||
res, err := svc.CheckReleaseToken(context.Background(), token.ID)
|
||||
|
||||
Reference in New Issue
Block a user