From b7b68abf6b9b2510094ae8f40e799c46e26ba433 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Thu, 15 Oct 2026 18:21:18 +0800 Subject: [PATCH] =?UTF-8?q?test(sms):=20=E4=BF=AE=E6=AD=A3=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B=E5=9B=A0=20DATETIME(0)=20=E5=8F=96?= =?UTF-8?q?=E6=95=B4=E5=AF=BC=E8=87=B4=E7=9A=84=E6=97=B6=E9=97=B4=E6=95=8F?= =?UTF-8?q?=E6=84=9F=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updated_at 为 DATETIME(0),写库会把小数秒向上取整到下一秒,退避设为 0 时刚失败的记录会被 取数条件 updated_at <= now-退避 取不到,导致 TestDispatchRetriesThenFails 必挂;退避量改为 -2s 保证连续重试可确定执行。 --- backend/internal/jobs/smsdispatch/job_test.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/internal/jobs/smsdispatch/job_test.go b/backend/internal/jobs/smsdispatch/job_test.go index e5ab184..7962179 100644 --- a/backend/internal/jobs/smsdispatch/job_test.go +++ b/backend/internal/jobs/smsdispatch/job_test.go @@ -297,8 +297,10 @@ func TestDispatchRetriesThenFails(t *testing.T) { sms.NodeOrderHandoffAssist: {Enabled: true, TemplateCode: "SMS_512540945"}, })} job := New(db, nil, zap.NewNop(), mainProvider, "大锤商行", reader, nil) - // 退避设为 0,便于在测试内连续重试。 - job.retryDelay = 0 + // 退避设为负值,便于在测试内连续重试。 + // updated_at 是 DATETIME(0),写库时小数秒会向上取整到下一秒(如 .690 → 下一秒), + // 若把退避设为 0,刚失败的记录会被取数条件 updated_at <= now-退避 误判为「仍在退避中」而取不到。 + job.retryDelay = -2 * time.Second row := seedPending(t, db, model.SmsMessage{ UserID: 7,