From 1422f0a7628af65eb4f388cf0ebe384bede3164b Mon Sep 17 00:00:00 2001 From: timofey Date: Tue, 8 Nov 2022 01:32:43 +0000 Subject: [PATCH] ABlockMonitor parametres --- v6d2ctx/pain.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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())