Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import functools
- def retriable(func):
- @functools.wraps(func)
- def wrapper(*args, **kwargs):
- timeout = kwargs['timeout']
- criteria_satisfied = func(*args, **kwargs)
- while not criteria_satisfied and timeout > 0:
- time.sleep(5)
- timeout -= 5
- criteria_satisfied = func(*args, **kwargs)
- return criteria_satisfied
- return wrapper
- @retriable
- def decorated(ip, timeout=60):
- ... some logic
- return True
- decorated(ip)
- import functools
- def retriable_with_arg(timeout):
- def retriable(func):
- @functools.wraps(func)
- def wrapper(*args, **kwargs):
- alive_timeout = timeout
- criteria_satisfied = func(*args, **kwargs)
- while not criteria_satisfied and alive_timeout > 0:
- time.sleep(5)
- alive_timeout -= 5
- criteria_satisfied = func(*args, **kwargs)
- return criteria_satisfied
- return wrapper
- return retriable
- @retriable(timeout=60)
- def decorated(ip, timeout=60):
- ... some logic
- return True
- decorated(ip)
Add Comment
Please, Sign In to add comment