diff --git a/zhenxun/utils/decorator/retry.py b/zhenxun/utils/decorator/retry.py index 2a6cc757..ddc55584 100644 --- a/zhenxun/utils/decorator/retry.py +++ b/zhenxun/utils/decorator/retry.py @@ -1,16 +1,24 @@ +from anyio import EndOfStream from httpx import ConnectError, HTTPStatusError, TimeoutException from tenacity import retry, retry_if_exception_type, stop_after_attempt, wait_fixed class Retry: @staticmethod - def api(): + def api( + retry_count: int = 3, wait: int = 1, exception: tuple[type[Exception], ...] = () + ): """接口调用重试""" + base_exceptions = ( + TimeoutException, + ConnectError, + HTTPStatusError, + EndOfStream, + *exception, + ) return retry( reraise=True, - stop=stop_after_attempt(3), - wait=wait_fixed(1), - retry=retry_if_exception_type( - (TimeoutException, ConnectError, HTTPStatusError) - ), + stop=stop_after_attempt(retry_count), + wait=wait_fixed(wait), + retry=retry_if_exception_type(base_exceptions), )