From 35611beb7d55b537c1901091a54992c88b15a63e Mon Sep 17 00:00:00 2001 From: ThearchyHelios Date: Sun, 18 Oct 2026 16:15:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BA=8B=E4=BB=B6=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=EF=BC=9A=E5=8E=BB=E6=8A=96=E4=B8=AD=E7=9A=84=E7=AD=89?= =?UTF-8?q?=E5=BE=85=E7=8A=B6=E6=80=81=E8=A1=A5=E4=B8=80=E6=9D=A1=E6=96=AD?= =?UTF-8?q?=E8=A8=80=EF=BC=88=E5=87=A0=E6=AC=A1=E5=9C=A8=E7=AD=89=E3=80=81?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E4=BD=95=E6=97=B6=E7=BB=93=E6=9D=9F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pending_for 给接口的 trigger_state:派给任务、还在去抖窗口里的条数和窗口结束的时刻。原来只在没有等待时断言过 due_at 为空, 这里在两条事件落进同一个窗口、还没到时刻时核对 waiting=2、due_at 是第一条发生之后 60 秒。 验证:后端全量 14467 通过(-n 8)。 --- backend/tests/test_schedule_events.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/tests/test_schedule_events.py b/backend/tests/test_schedule_events.py index 4004c621..81bb719d 100644 --- a/backend/tests/test_schedule_events.py +++ b/backend/tests/test_schedule_events.py @@ -279,6 +279,9 @@ async def test_debounce_merges_events_in_the_window(): # 窗口还没过:只派、不发 assert await outbox.dispatch_due(t0 + timedelta(seconds=40)) == [] assert [d.status for d in await deliveries(sid)] == ["pending", "pending"] + async with SessionLocal() as session: + state = await outbox.pending_for(session, await session.get(Schedule, sid)) + assert state == {"events": 0, "waiting": 2, "due_at": (t0 + timedelta(seconds=60)).isoformat()} e3 = await put_event("workflow.finished", upstream, payload("run-3"), t0 + timedelta(seconds=70)) [fire] = await outbox.dispatch_due(t0 + timedelta(seconds=61)) assert fire.fire_at == t0 + timedelta(seconds=60) and fire.kind == "event"