每天进步一点点-一些试用的装饰器【摘录】

  1. @retry:重试执行
    @retry装饰器帮助我在遇到异常时重试函数执行,确保更大的弹性:
import time
 
 def retry(max_attempts, delay):
    def decorator(func):
        def wrapper(*args, **kwargs):
            attempts = 0
            while attempts < max_attempts:
                try:
                    return func(*args, **kwargs)
                except Exception as e:
                    print(f"Attempt {attempts + 1} failed. Retrying in {delay} seconds.")
                    attempts += 1
                    time.sleep(delay)
            raise Exception("Max retry attempts exceeded.")
        return wrapper
    return decorator
 @retry(max_attempts=3, delay=2)
 def fetch_data_from_api(api_url):
    # Your API data fetching code here
posted @ 2023-11-02 11:21  Alive_2020  阅读(4)  评论(0编辑  收藏  举报