in smallpond/execution/scheduler.py [0:0]
def notify_state_observers(self, force_notify=False) -> bool:
secs_since_last_state_notify = time.time() - self.last_state_notify_time
if force_notify or secs_since_last_state_notify >= self.secs_state_notify_interval:
self.last_state_notify_time = time.time()
for observer in self.sched_state_observers:
if force_notify or observer.enabled:
start_time = time.time()
observer.update(self)
elapsed_time = time.time() - start_time
if elapsed_time >= self.ctx.secs_executor_probe_interval / 2:
self.secs_state_notify_interval = self.ctx.secs_executor_probe_timeout
if elapsed_time >= self.ctx.secs_executor_probe_interval:
observer.enabled = False
logger.warning(f"disabled slow scheduler state observer (elapsed time: {elapsed_time:.1f} secs): {observer}")
return True
else:
return False