diff --git a/src/ert/analysis/_es_update.py b/src/ert/analysis/_es_update.py index 4fd29651dec..3daf8647d35 100644 --- a/src/ert/analysis/_es_update.py +++ b/src/ert/analysis/_es_update.py @@ -66,6 +66,8 @@ def noop_progress_callback(_: AnalysisEvent) -> None: class TimedIterator(Generic[T]): + SEND_FREQUENCY = 1.0 # seconds + def __init__( self, iterable: Sequence[T], callback: Callable[[AnalysisEvent], None] ) -> None: @@ -73,6 +75,7 @@ def __init__( self._iterable = iterable self._callback = callback self._index = 0 + self._last_send_time = 0.0 def __iter__(self) -> Self: return self @@ -88,11 +91,14 @@ def __next__(self) -> T: estimated_remaining_time = (elapsed_time / (self._index)) * ( len(self._iterable) - self._index ) - self._callback( - AnalysisTimeEvent( - remaining_time=estimated_remaining_time, elapsed_time=elapsed_time + if elapsed_time - self._last_send_time > self.SEND_FREQUENCY: + self._callback( + AnalysisTimeEvent( + remaining_time=estimated_remaining_time, + elapsed_time=elapsed_time, + ) ) - ) + self._last_send_time = elapsed_time self._index += 1 return result