def METHOD_NAME(self, func, times=3, delay_sec=10):
    """Attempt to execute a function several times with a delay between attempts."""
    for i in range(1, times + 1):
        try:
            func()
            break
        except Exception:
            if i < times:
                self.logger.exception(
                    f"Exception executing {func.__name__}() on attempt {i} of {times}. "
                    f"Waiting {delay_sec} seconds and trying again.")
                time.sleep(delay_sec)
            else:
                self.logger.exception(
                    f"Exception executing {func.__name__}() on attempt {i} of {times}.")