✨ Added Steam API rate limiter
This commit is contained in:
@@ -63,7 +63,9 @@ class Manager:
|
|||||||
# Handle unretryable errors
|
# Handle unretryable errors
|
||||||
log_args = (type(error).__name__, self.name, game.name, game.game_id)
|
log_args = (type(error).__name__, self.name, game.name, game.game_id)
|
||||||
if type(error) not in self.retryable_on:
|
if type(error) not in self.retryable_on:
|
||||||
logging.error("Unretryable %s in %s for %s (%s)", *log_args)
|
logging.error(
|
||||||
|
"Unretryable %s in %s for %s (%s)", *log_args, exc_info=error
|
||||||
|
)
|
||||||
self.report_error(error)
|
self.report_error(error)
|
||||||
break
|
break
|
||||||
# Handle being out of retries
|
# Handle being out of retries
|
||||||
|
|||||||
@@ -43,9 +43,10 @@ class TokenBucketRateLimiter(AbstractContextManager):
|
|||||||
if refill_spacing_seconds is not None:
|
if refill_spacing_seconds is not None:
|
||||||
self.REFILL_SPACING_SECONDS = refill_spacing_seconds
|
self.REFILL_SPACING_SECONDS = refill_spacing_seconds
|
||||||
|
|
||||||
# Create locks
|
# Create synchro data
|
||||||
self.__n_tokens_lock = Lock()
|
self.__n_tokens_lock = Lock()
|
||||||
self.queue_lock = Lock()
|
self.queue_lock = Lock()
|
||||||
|
self.queue = deque()
|
||||||
|
|
||||||
# Initialize the number of tokens in the bucket
|
# Initialize the number of tokens in the bucket
|
||||||
self.bucket = BoundedSemaphore(self.MAX_TOKENS)
|
self.bucket = BoundedSemaphore(self.MAX_TOKENS)
|
||||||
|
|||||||
Reference in New Issue
Block a user