MCPcopy Create free account
hub / github.com/TheMariday/marimapper / TimeoutController

Class TimeoutController

marimapper/timeout_controller.py:4–31  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2
3
4class TimeoutController:
5
6 def __init__(
7 self,
8 sample_size_min=10,
9 sample_size_max=20,
10 default_timeout_sec=1.0,
11 percentile=90,
12 multiplier=1.5,
13 ):
14 self._response_times = []
15 self._sample_size_min = sample_size_min
16 self._sample_size_max = sample_size_max
17 self._percentile = percentile
18 self._multiplier = multiplier
19 self.timeout = default_timeout_sec
20
21 def add_response_time(self, response_time):
22 self._response_times.append(response_time)
23 self._response_times = self._response_times[-self._sample_size_max :]
24
25 self.update_timeout()
26
27 def update_timeout(self):
28 if len(self._response_times) >= self._sample_size_min:
29 self.timeout = (
30 np.percentile(self._response_times, self._percentile) * self._multiplier
31 )

Calls

no outgoing calls