From c506c9e2ed4d4924ef0efbe0e9fa70c9226122e3 Mon Sep 17 00:00:00 2001 From: zhaoxing <2558691827@qq.com> Date: Sun, 15 Nov 2026 14:23:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=8A=E6=B8=B8=E9=99=90=E9=A2=91?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E5=86=B7=E5=8D=B4=E8=B0=83=E6=95=B4=E4=B8=BA?= =?UTF-8?q?=205=20=E7=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - rockRateLimitCooldown 由 60 秒改为 5 秒,释放校验可快速重试 - 自动轮询仍保留各自的防抖与指数退避,避免持续触发 110001 - 同步更新注释与限频测试中的冷却设置 --- backend/internal/service/rock_delivery_log.go | 3 ++- backend/internal/service/rock_redeem_confirm.go | 2 +- backend/internal/service/rock_release_test.go | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/internal/service/rock_delivery_log.go b/backend/internal/service/rock_delivery_log.go index 6f73560..f906ec6 100644 --- a/backend/internal/service/rock_delivery_log.go +++ b/backend/internal/service/rock_delivery_log.go @@ -20,7 +20,8 @@ const ( // 单个报文字段最大长度,避免异常大响应拖垮数据库;超出部分截断并标注。 rockDeliveryLogMaxBodyBytes = 512 * 1024 // 上游 110001 频控后的全局冷却时间。 - rockRateLimitCooldown = 60 * time.Second + // 默认 5 秒:释放校验等人工操作可以快速重试;自动轮询仍有各自的退避与防抖。 + rockRateLimitCooldown = 5 * time.Second ) // rockUpstreamRateLimitedUntil 记录上游频控解禁时间(UnixNano)。 diff --git a/backend/internal/service/rock_redeem_confirm.go b/backend/internal/service/rock_redeem_confirm.go index 85f8542..fe885af 100644 --- a/backend/internal/service/rock_redeem_confirm.go +++ b/backend/internal/service/rock_redeem_confirm.go @@ -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() diff --git a/backend/internal/service/rock_release_test.go b/backend/internal/service/rock_release_test.go index eaf11a5..17d023f 100644 --- a/backend/internal/service/rock_release_test.go +++ b/backend/internal/service/rock_release_test.go @@ -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)