Как определить, не удалось ли повторить попытку с модулем повторных попыток Python?
Я использую питон retrying
библиотека для ожидания и повторной загрузки, когда сервер находится в режиме защиты от DDoS, но у меня вопрос: как я могу выдать исключение, если все повторные попытки не удаются?
В моем коде download(symbol)
функция может поднять DDoSProtection
исключение. Если это так, я хотел бы начать повторную попытку, и если stop_max_attempt_number
повторные попытки не в состоянии поднять downloadError()
исключение.
def retry_if_ddospro_error(exception):
"""Return True if we should retry (in this case when it's an DDoSProtection), False otherwise"""
return isinstance(exception, DDoSProtection)
@retry(retry_on_exception = retry_if_ddospro_error, stop_max_attempt_number = 3, wait_fixed=3000)
def download (symbol):
ls = exchange.fetch_ohlcv(symbol) # Might raise DDoSProtection
# RETRY
if retry_fail:
# RAISE new exception in order to log error into database
raise downloadError('Exchange is in DDoS protection')
РЕДАКТИРОВАТЬ: удаление try
except
в моем примере.