diff --git a/backend/app/services/collector.py b/backend/app/services/collector.py index 77f47bc..60cd4d2 100644 --- a/backend/app/services/collector.py +++ b/backend/app/services/collector.py @@ -271,8 +271,11 @@ async def collect_once() -> None: async def collector_loop(stop_event: asyncio.Event) -> None: while not stop_event.is_set(): + cycle_started = asyncio.get_running_loop().time() await collect_once() + elapsed = asyncio.get_running_loop().time() - cycle_started + sleep_for = max(0.0, settings.poll_interval_seconds - elapsed) try: - await asyncio.wait_for(stop_event.wait(), timeout=settings.poll_interval_seconds) + await asyncio.wait_for(stop_event.wait(), timeout=sleep_for) except asyncio.TimeoutError: pass