petrov826 commited on
Commit
f71572b
·
verified ·
1 Parent(s): f23e0c0

simplify counting and waiting logic

Browse files
Files changed (1) hide show
  1. rate_limiter.py +7 -17
rate_limiter.py CHANGED
@@ -16,27 +16,17 @@ class RateLimiter:
16
  self.calls_per_wait = calls_per_wait
17
  self.seconds_to_wait = seconds_to_wait
18
 
19
- self.successful_calls = 0 # APIの呼び出し成功回数
20
- self.failed_calls = 0 # APIの呼び出し失敗回数
21
-
22
- def increment_successful_calls(self, kwargs, completion_obj, start_time, end_time):
23
- """API呼び出しが成功したときに、呼び出し成功回数を1増やす。"""
24
- self.successful_calls += 1
25
- self.sleep_if_needed()
26
-
27
- def increment_failed_calls(self, kwargs, completion_obj, start_time, end_time):
28
- """API呼び出しが失敗したときに、呼び出し失敗回数を1増やす。"""
29
- self.failed_calls += 1
30
- self.sleep_if_needed()
31
 
32
  def sleep_if_needed(self):
33
  """
34
  呼び出し回数が`calls_per_wait`を超えていたら、
35
  APIの呼び出し回数をリセットして`seconds_to_wait`秒待機する
 
36
  """
37
- if (self.successful_calls + self.failed_calls) >= self.calls_per_wait:
38
- self.successful_calls = 0
39
- self.failed_calls = 0
40
-
41
  print(f"呼び出し回数がf{self.calls_per_wait}回を超えたので、f{self.seconds_to_wait}秒待機します")
42
- time.sleep(self.seconds_to_wait)
 
 
 
 
16
  self.calls_per_wait = calls_per_wait
17
  self.seconds_to_wait = seconds_to_wait
18
 
19
+ self._call_count = 0 # 呼び出し回数
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  def sleep_if_needed(self):
22
  """
23
  呼び出し回数が`calls_per_wait`を超えていたら、
24
  APIの呼び出し回数をリセットして`seconds_to_wait`秒待機する
25
+ その後、呼び出し回数を1増やす
26
  """
27
+ if self._call_count >= self.calls_per_wait:
 
 
 
28
  print(f"呼び出し回数がf{self.calls_per_wait}回を超えたので、f{self.seconds_to_wait}秒待機します")
29
+ time.sleep(self.seconds_to_wait)
30
+ self._call_count = 0
31
+
32
+ self._call_count += 1