diff --git a/v6d2ctx/pain.py b/v6d2ctx/pain.py index c14071a..6e1f517 100644 --- a/v6d2ctx/pain.py +++ b/v6d2ctx/pain.py @@ -55,19 +55,24 @@ class ABlockMonitor: __task: asyncio.Future __max: float - def __init__(self, threshold=0.0) -> None: + def __init__(self, *, threshold=0.0, delta=10.0, interval=0.0) -> None: self.__max = threshold + self.delta = delta + self.interval = interval async def _monitor(self): while True: - delta = 10 + delta = self.delta t = time.time() await asyncio.sleep(delta) spent = time.time() - t delay = spent - delta if delay > self.__max: self.__max = delay - print(f'block monitor reached new peak delay {delay:.3f}') + print(f'block monitor reached new peak delay {delay:.4f}') + interval = self.interval + if interval > 0: + await asyncio.sleep(interval) async def __aenter__(self): self.__task = asyncio.get_running_loop().create_task(self._monitor())