fix: add retry_after attribute to KworkRateLimitError
This commit is contained in:
parent
f397769ce0
commit
a02bc910f1
@ -131,16 +131,26 @@ class KworkRateLimitError(KworkApiError):
|
|||||||
Возникает при слишком частых запросах к API.
|
Возникает при слишком частых запросах к API.
|
||||||
Рекомендуется сделать паузу перед повторным запросом.
|
Рекомендуется сделать паузу перед повторным запросом.
|
||||||
|
|
||||||
|
Attributes:
|
||||||
|
retry_after: Время ожидания в секундах (если указано сервером).
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await client.catalog.get_list()
|
await client.catalog.get_list()
|
||||||
except KworkRateLimitError:
|
except KworkRateLimitError as e:
|
||||||
await asyncio.sleep(5) # Пауза 5 секунд
|
wait_time = e.retry_after or 5
|
||||||
|
await asyncio.sleep(wait_time)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, message: str = "Rate limit exceeded", response: Optional[Any] = None):
|
def __init__(
|
||||||
|
self,
|
||||||
|
message: str = "Rate limit exceeded",
|
||||||
|
response: Optional[Any] = None,
|
||||||
|
retry_after: Optional[int] = None,
|
||||||
|
):
|
||||||
|
self.retry_after = retry_after
|
||||||
super().__init__(message, 429, response)
|
super().__init__(message, 429, response)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user