重试装饰器
def decorator(myException, logger, class_name, initf=1, time_interval=5, alarmf=3): def wrapper(func): @wraps(func) def decorator_sub(*args, **kwargs): init ,delay ,alarm = initf, time_interval, alarmf while alarm > 0: try: result = func(*args, **kwargs) if result is False: logger.error("重试次数:%s" % (init)) init += 1 time.sleep(delay) continue else: return result except myException as err: logger.error(err) finally: alarm -= 1 else: logger.debug("stop %s" % (class_name)) return decorator_sub return wrapper