# -*- coding = utf-8 -*- # @Time : 2025/2/13 下午7:40 # @File : helper.py # @Software : PyCharm # @Author : xingc # @Desc : import asyncio import functools from typing import Callable def async_retry(max_retries: int = 3, exceptions: tuple = (Exception,)): """ 异步重试装饰器。 :param max_retries: 最大重试次数。 :param exceptions: 触发重试的异常类型。 """ def decorator(func: Callable): @functools.wraps(func) async def wrapper(*args, **kwargs): retries = 0 while retries < max_retries: try: return await func(*args, **kwargs) except exceptions as e: retries += 1 if retries >= max_retries: raise # 如果达到最大重试次数,抛出异常 return wrapper return decorator