当服务器处于 DDoS 保护时,我使用 Pythonretrying
库等待并重试下载,但我的问题是当所有重试失败时如何抛出异常?
在我的代码中,该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
编辑:在我的例子中删除。