feat: target memory sync event replay

This commit is contained in:
张胜宇
2026-09-11 20:26:05 +08:00
parent 5e848f5690
commit 50a611274a
+5 -1
View File
@@ -29,7 +29,9 @@ class MemorySyncOutboxWorker:
self.handlers = handlers
self.session_factory = session_factory
async def run_once(self, *, target_store: str | None = None) -> bool:
async def run_once(
self, *, target_store: str | None = None, event_uuid: str | None = None
) -> bool:
"""领取并处理一条到期事件;没有可处理事件时返回 False。"""
if not self.handlers:
return False
@@ -42,6 +44,8 @@ class MemorySyncOutboxWorker:
]
if target_store is not None:
conditions.append(MemorySyncOutbox.target_store == target_store)
if event_uuid is not None:
conditions.append(MemorySyncOutbox.event_uuid == event_uuid)
event = await session.scalar(
select(MemorySyncOutbox)
.where(*conditions)