diff --git a/app/core/observe_worker.py b/app/core/observe_worker.py index ba44a6e..aa41723 100644 --- a/app/core/observe_worker.py +++ b/app/core/observe_worker.py @@ -104,6 +104,9 @@ async def stop_observe_worker(task: asyncio.Task | None) -> None: task.cancel() with contextlib.suppress(asyncio.CancelledError): await task + dropped = take_dropped() # 收口:补记最后一个 flush 窗口累计的丢弃数,不让账丢在关停期 + if dropped: + logger.warning("observe dropped %d events (queue full) before shutdown", dropped) if _client is not None: # worker 已停,安全 drain 剩余并 best-effort 发最后一批(短超时,不卡关停); # 超过一批(BATCH_MAX)的剩余直接丢,不做多轮 flush(best-effort,关停从速)。