2

当服务器处于 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编辑:在我的例子中删除。

参考资料:https ://pypi.python.org/pypi/retrying

4

0 回答 0