diff --git a/app/worker/memory_sync_outbox_worker.py b/app/worker/memory_sync_outbox_worker.py index 73f97f5..e18aa41 100644 --- a/app/worker/memory_sync_outbox_worker.py +++ b/app/worker/memory_sync_outbox_worker.py @@ -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)